回复 9楼 书生牛犊
谢谢 不过要解决的问题中加数的个数是固定的……
我前一段时间找了个递归算法,不过不能去重复, 书生牛犊看看能不能想想办法?
#include <stdio.h>
int f[ 100 ] ;
void chai( int m , int n )
{
int k ;
static int i = 0 ;
static int a=n;
if( n == 1 )
{
f[ i ] = m ;
int i;
for(i =0; i<a-1; i++ )
printf("%d+",f[i]);
printf("%d\n",f[i]);
}
else
for( k=1; k<=m-n+1; k++ )
{
f[ i ] = k ;
i++ ;
chai( m-k , n-1 ) ;
i--;
}
return ;
}
int main( )
{
chai( 7,4) ;
return 0 ;
}