Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99860 | 刘星辰liuxingchen | 拆分自然数 | C++ | 解答错误 | 0 | 348 MS | 252 KB | 575 | 2023-08-24 09:26:34 |
#include<bits/stdc++.h> using namespace std; int n; int num=0; vector<int> path; void dfs(int sum,int tmp,int Min) { if(sum==n) { num++; if(path.size()==1) { return ; } cout<<n; cout<<"="; for(int i=0;i<path.size()-1;i++) { cout<<path[i]; cout<<"+"; } cout<<path[path.size()-1]; cout<<endl; return ; } if(sum>n) { return ; } for(int i=Min;i<=n-sum;i++) { path.push_back(i); dfs(sum+i,tmp,i); path.pop_back(); } return ; } int main() { cin>>n; dfs(0,0,1); cout<<num; return 0; }