系列文章目录
文章目录
前言
也是终于更新了好吧!
一、个人名片
个人主页:睡觉觉觉得
🎐CSDN新晋作者
🎉欢迎 👍点赞✍评论⭐收藏
✨收录专栏:C++蓝桥杯中级
🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗
二、描述
输入两个正整数 m 和 n( 0 < m <= n <= 20),要求 m 个正整数相加的和为 n,输出满足这个条件的正整数组合有多少。
三、输入输出以及代码示例
1.输入
分行输入 m 和 n,(0<m<=n<=20)输入样例:
cpp
4
8
2.输出
输出满足这个条件的正整数组合有多少,输出样例:
cpp
5
3.代码示例
代码示例如下:
cpp
#include<iostream>
using namespace std;
int m;
int n;
int f[21];
void qing(){
for(int i=1;i<=m;i++){
f[i]=0;
}
}
int yuansuan(int x,int s,int y){
if(1==s){
f[x]=y;
if(f[x]<f[x-1]){
return 0;
}
return 1;
}
int c=0;
for(int i=1;i<=y-s+1;i++){
f[x]=i;
if(f[x]>=f[x-1]){
c=c+yuansuan(x+1,s-1,y-i);
}
}
return c;
}
int main (){
while(cin>>m>>n){
int d=yuansuan(1,m,n);
cout<<d<<endl;
}
}
总结
没了记得点赞!