希望使用者好好看一下代码变量的简单注释,这样才能搞清楚程序参数的各种具体应用方法。

' 《凑数、凑金额的实用多功能强化版》 by kagawa 2014-01-01

'  2017-7-7更新 增加回溯 以便快速计算得到部分结果

'  2021-4-21 数值由Long整数改为CDec十进制数计算模式

'  2021-5-8 增加关联值汇总计算、重复值可选择字典去重复 或不去重复保留所有组合(关联值不同时)

'  经Excel Home 香川群子 的深入研究, 采用排序以后的差值递归、末位搜索、

'  当前位超过剩余值剪枝、当前位剩余和不足剪枝、递归计算深度参数控制等技

'  最后产生了目前最好的Excel VBA 高速高效的组合求和递归剪枝算法。

'  可处理小数、负数、重复数等各种情况

'  通过指定小数位数、指定目标和值范围、组合个数范围、指定求解个数、递归计算深度等参数使用

'  可以得到很多有趣的效果、可以满足几乎所有之前要求凑数、凑金额的求助帖子

'  我愿意公开此代码以便大家使用和学习

'========================================================================================

Dim sj(), jg(), dic, d&, d2&, h, h0#, h1, h2, h3#, k&, l&, l2&, m&, n&, n2&, t2&, cnt&, cnt0&, cnt1&, cnt2&, tms#

'递归用公用变量定义:

' sj(): 存放递归用原始数据的数组,已经过升序预处理含[原始数值]、[小数位转换为十进制数值]、[剪枝用累计和]

' jg(): 存放递归计算结果的数组,含组合个数、组合总和、组合明细、递归计算深度

' dic:  原始数据有重复时用来排除重复的字典dic

' d:    d=[f3] 指定小数位数d

' d2:   [f12]=d2 元素重复个数(有重复元素时使用字典排除重复组合)

'       起始设置=-1时,不排除重复【关联汇总对象不同时】

' h:    h=[f1] 目标和值 转为Dec十进制数

' h0#:  目标和值下限 双精度原始值

' h1:   [f11]=h1 有负数时负数累计总和h1

' h2:   h2=[f2] 目标和值上限。并计算转换为和值的向上范围 转为Dec十进制数

' h3#:  目标和值上限 双精度原始值

' h和h2 有3种组合类型:

'       [h,0]→[h,h]输出完全匹配=h的组合;

'       [h

'       [h2

' k:    [f7]=k 组合结果存入jg数组时的序号、计算得到的组合结果总数

' l:    l=[f6] jg()数组的最大下标=限制计算以及输出到工作表的最大行数l

'       留空时不限制计算、但输出默认为<65530行

'       l=-1时输出组合结果到本文件所在文件夹下的txt文本文件

' l2:   统计组合结果文本长度最大值超过911时不能进行数组输出,只能逐行输出

' m:    原始数据中待组合元素个数m

' n:    n=[f4] 指定组合元素个数下限n

' n2:   n2=[f5] 指定组合元素个数上限n2

' n和n2 共有4种组合类型:

'       [0,0]→[0,m]输出全部组合;[n,0]→[n,n]匹配=n的组合;

'       [0,n2]→输出0-n2范围组合;[n,n2]→输出n-n2组合。

' t2:   t2=[f14] 允许回溯时的t值限制 有扩大计算深度的效果

' cnt:  [f8]=cnt 递归计算次数

' cnt0: cnt0=[f15] 递归计算深度(默认留空时=2^16即65536次递归)

'       初次计算无解则可改输入=-1 就会遍历计算全部组合(计算量太大可能会陷入假死循环)

' cnt1: 递归计算深度 有解时归零、或未达到允许回溯的t值时归零

' cnt2: [f13]=cnt2 递归计算深度的最大值记录

' A列序号

' B列凑数对象:个数或金额或任意含小数的数值

' C列关联汇总对象:B列凑数值组合相加求和在目标和值范围内时、同时输出其C列也能相加汇总的关联值的总和

' 计算完成后 选N列点按钮黄色高亮序号、选O列点按钮黄色高亮B列组合 选第1行后点按钮则消除黄色底色

c语言凑数的不同种方法,凑数强化版【庆贺2021年5月9日母亲节】相关推荐

  1. C语言程序设计复习题(2021年11月3日)

    C语言程序设计复习题 (2021年11月3日) 解析有空再写 一.选择题: 1.以下各组数据中,不正确的数值或字符常量是( CAA ) [1]A)011  B)3.987E-2 C)018 D)0xa ...

  2. 税务总局发文进一步简便优化部分纳税人个人所得税预扣预缴方法!2021年1月1日起施行

    国家税务总局 关于进一步简便优化部分纳税人个人所得税预扣预缴方法的公告 国家税务总局公告2020年第19号 为进一步支持稳就业.保就业.促消费,助力构建新发展格局,按照<个税法>及其实施条 ...

  3. ACMNO.42 C语言-第几天 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。利用结构体的在最下面

    题目描述 定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 输入 年月日 输出 当年第几天 样例输入 2000 12 31 样例输出 366 来源/分类 C语言 题目截图 ...

  4. 《软件方法(上)业务建模和需求》第2版 勘误(2021年10月21日更新)

    说明 勘误中的一部分,特别是很荒谬的错误,其实是编辑自作主张修改而且未和作者沟通造成的.有心的读者如果在网上能找到我在出版前发布的"草稿"版本,对比一下就知道. 例如: 原文写&q ...

  5. 《软件方法(上)业务建模和需求》第2版 勘误(2021年10月9日更新)

    说明 勘误中的一部分,特别是很荒谬的错误,其实是编辑自作主张修改而且未和作者沟通造成的.有心的读者如果在网上能找到我在出版前发布的"草稿"版本,对比一下就知道. 例如: 原文写&q ...

  6. 利用c语言switch函数制作一个简单的计算器 2021年2月7日

    今日c语言 #include<stdio.h> #include<math.h> void main() { float a,b,c; char i; printf(" ...

  7. (更新时间)2021年3月24日 python基础知识(魔法方法)

    1.魔法方法 在 python 的类中,有一类方法,这类方法以 `两个下划线开头` 和`两个下划线结尾`, 并且在`满足某个特定条件的情况下,会自动调用`. 这类方法,称为魔法方法如何学习魔法方法: ...

  8. C语言判断第几天(最简版)

    C语言 判断第几天(最简版) 输入年.月.日,计算该日是该年的第几天. 例如 输入: 2012 7 1 输出: 183 输入: 2017 1 1 输出: 1 #include <stdio.h& ...

  9. 【历史上的今天】12 月 3 日:世界上第一条短信;Fortran 语言之父诞生;百度贴吧上线

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 3 日,在 20 年前的今天,电动平衡车(Segway)问世:电动平衡车是一种电力驱动.具 ...

最新文章

  1. python pptx 从中间加几页_python-pptx---插入表格
  2. python语言有什么用-为什么现在很多人都使用Python语言有什么优势
  3. legend3---OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
  4. 17.观察者模式(Observer Pattern)
  5. Linux监控(添加自定义监控项,配置邮件告警)
  6. .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
  7. adb启动app_adb命令实战十三步
  8. @Service @Autowired
  9. 拼多多上线“医药健康日” 将对最常用的OTC药品等进行补贴
  10. curl传post数据流
  11. 小程序丨canvas内容自适应不同尺寸屏幕
  12. c语言随机抽取小程序_c++ c语言编写抽学号小程序
  13. 头像+壁纸微信小程序源码
  14. 第25章 串行FLASH文件系统FatFs—零死角玩转STM32-F429系列
  15. VS2013 设置背景图
  16. Windows常见基本进程八:wuauclt
  17. file-saver blob前端导出excel文件
  18. 计算机浮点数格式化表示方法,浮点数在计算机中是如何表示的
  19. Word目录中自动添加自定义样式的多级标题的方法
  20. C1任务-10:域名解析

热门文章

  1. linux 常用命令——MySql 5.7添加用户、删除用户与授权
  2. 数字证书 X509详解 python解析SSL证书
  3. Excel日常遇到的问题整理(持续更新)
  4. 清空MySQL单库下所有表数据 || 删除MySQL单库下所有表
  5. 台式计算机usb接口无反应6,win7电脑usb接口没反应如何解决 电脑usb接口没反应解决方法...
  6. 【Pytorch Lighting】第 8 章:自监督学习
  7. git 移除项目版本控制_Git - 关于版本控制
  8. Java中文与Base64互转(解决中文乱码的问题)
  9. Win10 日期/时间修改
  10. Ubuntu 安装sogo 输入法