7-37 整数分解为若干项之和 (20 分)

mac2024-11-02  12

#include<iostream> using namespace std; int ans[40] = {0}; int sum = 0,len = -1; int n,cnt = 0; void Dfs(int v) { if(sum==n) { cnt++; cout<<n<<"="; for(int i = 0; i<=len; ++i) { if(i>0) cout<<"+"; cout<<ans[i]; } if(cnt<4&&ans[len]!=n) cout<<";"; else { cout<<endl; cnt = 0; } return; } else if(sum>n) return; else { for(int i = v ; i<=n; ++i) { sum += i; ans[++len] = i; Dfs(i); sum -= i; len--; } } } int main() { cin>>n; Dfs(1); return 0; }
最新回复(0)