如输入4,打印:
4=4
4=3+1
4=2+2
4=2+1+1
4=1+1+1+1
书上给的代码看了半没有明白,也试不过~~
void int a[100] ;
rd(int i ,int k)//递归法
{
int j ;
for(j=i;j>=1 ;j--)
if(j<=a[k]){
a[k]=j;
if(j==i) 输出解;
else rd(i-j,k+1) ;
}
}//大虾们说明一下?!
怎么连个printf都没有
用的递归了,应该可以的,你把他打印出来看看
#include <stdio.h>
int a[100] ;
outresult(int k)
{ int j; printf("=%d",a[1]);
for(j=2;j<=k;j++) printf("+%d",a[j]);
printf("\r\n");
}
rd(int i ,int k)//递归法
{ int j ;
for(j=i;j>=1 ;j--)
if (j<=a[k])
{
a[k+1]=j;
if(i==j) outresult(k+1);
else rd(i-j,k+1) ;
}
}
main()
{
a[0]=5;
rd(5,0);
}