首页 > 其他分享 >整数划分问题(递归)

整数划分问题(递归)

时间:2022-10-22 10:34:40浏览次数:47  
标签:分划 正整数 递归 int 整数 else 划分 return

对于一个正整数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;
}

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

标签:分划,正整数,递归,int,整数,else,划分,return
From: https://blog.51cto.com/u_15765782/5785682

相关文章