Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99887 | 罗恩祥 | 拆分自然数 | C++ | 通过 | 100 | 249 MS | 256 KB | 491 | 2023-08-24 10:02:42 |
#include <iostream> using namespace std; int lst[1024]; int pos = 0; int N; int sum = 0; void dfs(int num,int last) { if(num == 0) { sum++; cout << N << '='; for(int i = 0;i < pos - 1;i++) { cout << lst[i] << '+'; } cout << lst[pos - 1]; cout << endl; } else { for(int i = last;i <= num;i++) { if(i == N) continue; lst[pos++] = i; dfs(num - i,i); pos--; } } } int main() { cin >> N; dfs(N,1); cout << sum; }