输入正整数n,求将n分解为若干个正整数的立方和有多少种方法?
例如,21有3种写法,77有22种写法。
参考代码:
#include <stdio.h>
#include<math.h>
int m,count;
int F(int M,int N)
{
int i,y,z,k=0;
for(i=2;i<M;i++)
{ y=(int)pow(i,3);
if(N>y)
{
k=N/y;
count=count+k;
for(z=1;z<=k;z++)
F(i,N-y*z);
}
else
return count;
}
return 0;
}
int main()
{
int i,n,j,x,num,z;
while(scanf("%d",&m)!=EOF)
{ num=0;
count=1;
for(i=2;;i++)
{
n=(int)pow(i,3);
if(m>=n)
{
j=m/n;
count+=j;
for(z=1;z<=j;z++)
if(i>2)
num=F(i,m-n*z);
}
else
break;
}
printf("%d\n",count);
}
return 0;
}