题目:将一个正整数n表示成一系列的正整数之和:求共有几种划分方法

如题所述

把这n分作n个1排成一行,n个1之间有n-1个间隔,每个间隔可以有,也可以没有,所以共有2的n-1次方种划分方法,如果这系列不包含n=n这一特殊情况,那么还要减去1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-06
n个一吗?话说只需要把这一堆一组合下看有多少种组合方法就好了吧?就是计算量比较大吧,还有循环次数相对较多,要是有几个整数的限制就好计算点了,而且这个正整数还不能太大

for后面应该是从0开始循环吧?
l=1
for(u(l)=0;i<=n/l;i++)
{l=1
p(l)=l++
if(n>=l)
for(u(l)=0;i<=n/l;i++)
{l=1
p(l)=l++
if(n>=l)
for(u(l)=0;i<=n/l;i++)
{l=1
p(l)=l++
if(n>=l)
......
{q=0
for(t=1;t<=n;t++)
q=q+p(t)*t
if(q==n)
sum++;}

这样子吧,前面的判断语句和循环语句多次调用,可以设成一个函数多次调用的,当然过程中需要设置全局变量什么的,这个思路应该比较正确了吧,也就是说n等于几就调用多少次那个函数
也就是n
思路就这样,程序没编完编了半个小时了都,现在没时间了回来继续编。。。当然你要是看懂了的话我就不继续编了,也就是剩下把那个循环体弄成个函数的样子
相似回答