【说明】
计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1
共有7种划分。这种划分的程序如下所示。
【程序】
#include <stdio.h>
int n[1000],m,k;
void output sum()
int j;
for(j=0;n[j]!=0;j++)
printf("%d\t",n[j]);
printf("\n");
void sum(int i)
if(m-n[i]<n[i])
m=m-n[i];
(1)
i++;
n[i+1]=0;
else
(2)
m-=n[i];
i++;
if(m!=n[i])
sum(i);
else
output_sum();
if(n[i]>1)
n[i]--;
(3)
else
while((n[i]==1)&&(i>O))
i--;
(4)
if(i!=0)
(5)
sum(i);
void main()
int i;
scanf("%d",&n[0]);
m=k=n[0];
for(i=1;i<=k;i++)
n[i]=0;
while(n[0]!=1)
n[0]--;
i=0;
sum(0);
m=k;