1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int num[50];//存放所有的数 bool f[50];//标记每个数是否被加到总和上了 int n; int maxsum=-1;//最大的和 //k为当前下标,sum为总和 void fun(int k,int sum) { if (k>=n)//如果下标大于数组下标 { if(sum > maxsum) maxsum = sum; return; } if(k != 0 && f[k-1] == false){ f[k] = true; fun(k+1,sum+num[k]); }else{ fun(k+1,sum); } f[k] = false; fun(k+1,sum); } int main() { cin>>n; for(int i = 0;i < n;i++){ cin>>num[i]; } fun(0,0); cout<<maxsum; return 0; }
- 1
信息
- ID
- 401
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者