Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99871 | modongtao | 拆分自然数 | C++ | 通过 | 100 | 274 MS | 252 KB | 526 | 2023-08-24 09:48:25 |
#include <bits/stdc++.h> using namespace std; int a[50]; int dfs(int a[], int cur, int n, int u, int t) { if (n < 0) return 0; if (n == 0) { cout << t << "="; for (int i = 1; i < cur; i++) { cout << a[i]; if (i != cur-1) cout << "+"; else cout << endl; } return 1; } int res=0; for (int i = u; i <= min(n, t-1); i++) { a[cur] = i; res += dfs(a, cur+1, n - i, i, t); } return res; } int main() { int n; cin >> n; cout << dfs(a, 1, n, 1, n) << endl; return 0; }