2 条题解
-
0
#include <bits/stdc++.h> using namespace std; int a[80], ans, n; void dfs(int x, int s) { if (s == n && x - 1 >= 2) { for (int i = 1; i <= x - 2; i++) printf("%d+", a[i]); printf("%d\n", a[x - 1]); } else { for (int i = a[x - 1]; i <= (n - s); i++) { a[x] = i; dfs(x + 1, s + i); a[x] = 0; } } } int main() { scanf("%d", &n); a[0] = 1; ans = 0; dfs(1, 0); return 0; } -
0
#include<bits/stdc++.h> using namespace std; int a[80],ans,n; void dfs(int x,int s) { if(s==n&&x-1>=2) { for(int i=1;i<=x-2;i++)printf("%d+",a[i]);printf("%d\n",a[x-1]); } else { for(int i=a[x-1];i<=(n-s);i++) { a[x]=i; dfs(x+1,s+i); a[x]=0; } } } int main() { scanf("%d",&n); a[0]=1; ans=0;dfs(1,0); return 0; }
- 1
信息
- ID
- 277
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 185
- 已通过
- 57
- 上传者