通过代码:
#include <bits/stdc++.h> using namespace std; int n, a[1000001] = {1}; void dfs(int s, int k) { if(s == 0 && k != 2) { printf("%d=", n); for(int i = 1; i < k; i ++) printf("%d%c", a[i], i != k - 1 ? '+' : '\n'); } for(int i = a[k - 1]; i <= s; i ++) { a[k] = i; dfs(s - i, k + 1); } } int main() { scanf("%d", &n); dfs(n, 1); return 0; }
1318:【例5.3】自然数的拆分
最新推荐文章于 2024-02-02 16:35:41 发布