输出不了,求助
查看原帖
输出不了,求助
1066932
xinaocyy楼主2024/3/10 11:07
#include<iostream>
using namespace std;

int n,len,adChains[10001];

bool dfs(long long k){
	if(k == len){
		if(adChains[k] == n){
			for(int i = 1;i <= k;i++){
				cout << adChains[i] << " ";
			}
			cout << endl;
			return true;
		}
		return false;
	}
	for(int i = k - 1;i >= 1;i--){
		for(int j = k - 1;j >= i;j--){
			adChains[k] = adChains[i] + adChains[j];
			if(dfs(k + 1)){
				return true;
			}
		}
	}
	return false;
}

int main(){
	cin >> n;
	while(n != 0){
		adChains[1] = 1;
		if(n == 1){
			cout << 1 << endl;
		}
		for(len = 2;len <= n;len++){
			if(dfs(1)){
				break;
			}
		}
		cin >> n;
	}
	return 0;
}

2024/3/10 11:07
加载中...