0
点赞
收藏
分享

微信扫一扫

整数划分问题(递归)

杰森wang 2022-10-22 阅读 34

对于一个正整数n的划分,就是把n变成一系列正整数之和的表达式。注意,分划与顺序无关,例如6=5+1跟6=1+5是

同一种分划。另外,单独这个整数本身也算一种分划。

例如:对于正整数n=5,可以划分为:

5;

4+1;

3+2;3+1+1;

2+2+1;2+1+1+1;

1+1+1+1+1;

输入描述:

输入一个正整数n

输出描述:

输出整数n划分的总数

#include<stdio.h>
int H(int n,int m)
{
if(n==1||m==1)
return 1;
else if(n<m)
return H(n,n);
else if(n==m)
return 1+H(n,n-1);
else
return H(n,m-1)+H(n-m,m);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",H(n,n));
return 0;
}

整数划分问题(递归)_递归

举报

相关推荐

0 条评论