Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
100459 | 柯昊阳 | 拆分自然数 | C++ | 通过 | 100 | 277 MS | 252 KB | 446 | 2023-08-26 17:26:57 |
#include<bits/stdc++.h> using namespace std; int a[100],n,m; int cnt = 0; void dfs(int cur,int sum) { if(sum==n) { cout<<n<<"="; for(int i=1; i<=cur-1; i++) { cout<<a[i]; if(i!=cur-1)cout<<"+"; } cout<<endl; cnt++; return ; } for(int i=a[cur-1];i<=n-1; i++){ if(sum+i<=n) { a[cur]=i; dfs(cur+1,sum+i); } } } int main() { cin>>n; a[0] = 1; dfs(1,0); cout<<cnt<<endl; return 0; }