Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
108712 | 宋春霖 | 拆分自然数 | C++ | 通过 | 100 | 241 MS | 248 KB | 460 | 2023-11-04 09:25:38 |
#include<bits/stdc++.h> using namespace std; int n, p[11]={1}, m, cnt; void print(int aa){ cout << n << '='; for(int i=1; i<aa; i++) cout << p[i] << '+' ; cout << p [aa] << endl; } void dfs(int a){ for(int i=p[a-1]; i<=m; i++){ if(i == n) continue; p[a] = i; m -= i; if(m == 0){ print(a); cnt ++; } else dfs(a + 1); m += i; } } int main(){ cin >> n; m = n; dfs(1); cout << cnt; return 0; }