您的位置:首页 > 其它

整数划分问题

2016-08-01 08:04 330 查看
将正整数n表示成一系列正整数之和。

将最大加数不大于n1不大于m的划分记作q(n,m)。#include<stdio.h>
int q(int n,int m){
if((n<1)||(m<1))
return 0;
if((n==1)||(m==1))
return 1;
if(n<m)
return q(n,n);
if(n==m)
return q(n,m-1)+1;

return q(n,m-1)+q(n-m,m);
}
int main(){
int a=6;//正整数
int b=6;
printf("%d ",q(a,b));//输出加数不大于b的划分种数
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: