整数划分问题
来源:互联网 发布:数组一般什么时候用 编辑:程序博客网 时间:2024/04/28 21:53
将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,
其中n1≥n2≥…≥nk≥1,k≥1。
正整数n的这种表示称为正整数n的划分。求正整数n的不
同划分个数。
另:给出所有不同划分的情况。
例如正整数6有如下11种不同的划分:
6;
5+1;
4+2,4+1+1;
3+3,3+2+1,3+1+1+1;
2+2+2,2+2+1+1,2+1+1+1+1;
1+1+1+1+1+1。
输入一个正整数,给出不同的划分,并求出总数。
#include<iostream.h>
int d[50],sum=0;
void huafen(int m,int n,int k) //将m分解为不大于n的组成数,k>=0是下标
{
inti;
if(0==m) //当m为0是表示得到一个划分,进行输出
{
sum++; //用来累计有多少种,并在最后输出。
for(i=0;i<k;i++)
{
cout<<d[i];
if(i<k-1)
cout<<"+";
}
cout<<endl;
}
for(i=(m<n? m:n);i>0;i--)//深度探索分解分解,大家可以适当输出m,n和K帮助理解递归
{
d[k]=i;
huafen(m-d[k],d[k],k+1); //递归分解,直到得到一个划分
}
}
void main()
{
intn;
cout<<"请输入要划分的数: ";
cin>>n;
huafen(n,n,0);
cout<<n<<"共有"<<sum<<"种不同划分"<<endl;
}
- 整数划分问题
- 整数划分的问题
- 整数划分问题
- [算法]整数划分问题
- 整数划分问题
- 【转】整数划分问题
- 整数划分问题解析
- 整数划分问题
- 整数划分问题
- 整数划分问题
- 整数划分问题
- 整数划分问题
- 整数划分问题 POJ1664
- 整数划分问题
- 整数划分问题
- 整数划分问题
- 整数划分问题
- 整数划分问题
- Elasticsearch的[monitor.jvm]垃圾回收日志
- 浅谈redis数据库的键值设计
- 浅谈redis数据库的键值设计
- on_TMdd
- poj-1840-Eqs 哈希(hash)
- 整数划分问题
- 创建自己的动态库及如何链接
- ㄊape ㄉelay
- 腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- UI控件 UIActivityIndicatorView 等待时出现的动态旋转图,以及自定义颜色
- Zip.tar
- Next Permutation
- l énovo
- Android开发中自定义ListView中存在ImageButton不响应ListItemClick单击事件详细d飞解决办法