以下是引用yigedaizi在2007-3-29 18:18:02的发言:
#define N 40
int a[N],r[N];
void main()
{int i,k,n;
printf("请输入 n:");
scanf("%d",&n);
a[0]=r[0]=n;
k=1;
while(1)
{if(r[k-1]==0)
{printf("%d=%d",a[0],a[1]);
for(i=2;i<k;i++)
printf("+%d",a[i]);
printf("\n");
while(k>1&&a[k-1]==1)
k--;
if(k==1) break;
a[k-1]--;
r[k-1]++;
}
else
{a[k]=r[k-1]<a[k-1]? r[k-1]:a[k-1];
r[k]=r[k-1]-a[k];
k++;
}
}
}
yigedaizi,你的程序有点不明白,能不能给点说明?