第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
思路就这样,程序没编完编了半个小时了都,现在没时间了回来继续编。。。当然你要是看懂了的话我就不继续编了,也就是剩下把那个循环体弄成个函数的样子