用c写一段程序,输入一整数,例如,4,输出
4=3+1
4=2+2
4=2+1+1
4=1+1+1+1
要求非递增序列。
求思路和参考代码,谢谢!
能写一下代码么?
追答#include
int find[150]={0},n;
void dfs(int d,int left){
int i;
if(left==0){
printf("%d=",n);
for(i=0;i=1;i--){
find[d]=i;
dfs(d+1,left-i);}
else
for(i=find[d-1];i>=1;i--)
if(left>=i){
find[d]=i;
dfs(d+1,left-i);}}
int main(){
scanf("%d",&n);
dfs(0,n);
return 0;}
/*BY TXJ*/