PTA-整数分解为若干项之和

    xiaoxiao2021-03-25  93

    点击打开题目链接~

     

    #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <cmath> using namespace std; int n; int sum; int s[64]; int top=-1; int Count=0; void dfs(int x) { if(sum==n)//输出结果 { Count++; cout<<n<<"="; for(int i=0;i<top;i++) { cout<<s[i]<<"+"; } if(Count%4==0||s[top]==n)//当输出为此行第四个结果或者输出为n=n时 cout<<s[top]<<"\n"; else cout<<s[top]<<";"; return ; } if(sum>n) return ; for(int i=x;i<=n;i++) {//题目要求递增顺序,应从x开始遍历,而非1 sum+=i; s[++top]=i; dfs(i); sum-=i;//回溯 top--; } } int main() { cin>>n; dfs(1); }

     

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-13916.html

    最新回复(0)