Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99886 | liuxinyi | 拆分自然数 | C++ | 通过 | 100 | 58 MS | 260 KB | 515 | 2023-08-24 10:01:43 |
#include<iostream> #include<cstdio> #define ll long long using namespace std; const int N=1e6+10; ll n,cnt; ll p[N],l; void perm(ll n,ll sum,ll k) { if(sum>n) return; if(sum==n) { if(l==1) return; cnt++; std::cout<<sum<<"="; for(int i=1;i<l;i++) std::cout<<p[i]<<"+"; std::cout<<p[l]<<"\n"; return; } for(int i=k;i<=n;i++) { p[++l]=i; perm(n,sum+i,i); l--; } } int main() { std::cin>>n; perm(n,0,1); std::cout<<cnt; puts(""); return 0; }