用c写一段程序,输入一整数,例如,4,输出 4=3+1 4=2+2 4=2+1+1 4=1+1+1

用c写一段程序,输入一整数,例如,4,输出
4=3+1
4=2+2
4=2+1+1
4=1+1+1+1
要求非递增序列。
求思路和参考代码,谢谢!

mark一下!
我说一下思路吧!
如下:
用数组储存数据,
通过上面可知
用你输入的数num
t=num%i;(i=num-1,num-2....1)
如果余数为 1
就直接输出
如果余数大于2
则减一减到1为止,
如果余数等于0
就继续除
直到这个数为0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-18
直接暴力dfs可以做追问

能写一下代码么?

追答

#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*/

相似回答