PTA 7-37 整数分解为若干项之和

代码如下:
#include<stdio.h>
int N;
int s[31];
int top = -1;
int count = 0;
int sum = 0;
void division (int i);
int main (){
scanf ("%d", &N);
division (1);
return 0;
}
void division (int i)
{
if (sum == N)
{
count ++;
printf("%d=", N);
int k;
for (k=0; k<top; k++)
{
printf("%d+", s[k]);
}
if (count%4 == 0 || s[top] == N)
{
printf("%d\n", s[top]);
}
else
{
printf("%d;", s[top]);
}
return;
}
if (sum > N)
{
return;
}
int j;
for (j=i; j<=N; j++)//关键
{
s[++top] = j;
sum += j;
division (j);
sum -= j;
top --;
}
}
登高而望。

浙公网安备 33010602011771号