Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
108722 廖悦扬 拆分自然数 C++ 解答错误 0 18 MS 276 KB 795 2023-11-04 09:31:51

Tests(0/5):


#include <bits/stdc++.h> using namespace std; int n, ans; void dfs(string s, int lst, int sum) { if (sum == n) { // cout << n << "=" << s.substr(1, s.size()-1) << endl; ans++; return; } if (sum > n) return; if ((n-sum) < lst) return; for (int i=lst; i<(n-sum+1); i++) { string tmp; // if (!s.empty()) tmp = s+"+"+(char)(i+'0'); // else // tmp = s+(char)(i+'0'); dfs(tmp, i, sum+i); } } int main() { // freopen("split.in", "r", stdin); // freopen("split.out", "w", stdout); cout.tie(0); cin.tie(0); cout.sync_with_stdio(false); cin.sync_with_stdio(false); cin >> n; if (n ==0) { cout << 0; return 0; } if (n ==1) { // cout << "1=1" << endl; cout << "0"; return 0; } dfs("", 1, 0); cout << ans; return 0; }


测评信息: