求基友指导
#include<stdio.h>int run(int a,int sum,int n,int *m,int *num)
{
int i;
for(i=a;i<=17;i++)
{
if(sum+m[i]<n)
run(i,sum+m[i],n,m,num);
else if(sum+m[i]==n)
{
(*num)++;
return 0;
}
else return 0;
}
}
int main()
{
int m[18];
int i,n,a,sum,num;
for(i=1;i<=17;i++)
m[i]=i*i;
while(scanf("%d",&n)!=0)
{
i=1;num=0;sum=0;a=1;
run(a,sum,n,m,&num);
printf("%d\n",num);
}
return 0;
}
。。这个递归函数怎么运行