对于任意一个正整数n,总是可以找出正整数看k1、k2…,使得这些数想加刚好等于n,而且每个数都不超过指定数m。
问:对于给定的n,请找出共有多少中这样的求和式
注意;
设a,b不相等,则认为a+b与b+a是不同的求和式;
n=n也是一种求和式
例如:
n=4,m=2。
4=1+1+1+1
4=1+1+2
4=1+2+1
4=2+1+1
4=2+2
C语言初学者的疑惑,不会,要求用递归
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 五一编程 2021-12-17 16:53关注
#include <stdio.h> int cnt=0; void comb(int a[],int m,int k,int s) { int i,j,t; for(i=m;i>=k;i--) { a[k]=i; if(k>1) comb(a,i-1,k-1,s); else { for(t=0,j=a[0];j>0;j--) t=t+a[j]; if(t==s) { cnt++; printf("%d=", s); for(j=a[0];j>1;j--) printf("%d+", a[j]); printf("%d\n", a[1]); } } } } int main() { int a[100],s,m,i; while (1) { scanf("%d %d", &s, &m); if (s == 0) { break; } cnt=0; for (i=1;i<=m;i++) { a[0]=i; comb(a,m,i,s); } printf("%d\n", cnt); } return 0; }
运行结果:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大