解题思路:
用dfs
只要之后选的数是目前选的数的后面的数,就不会出现重复情况
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; int x[1005]; int n,t; int add=0; void dfs(int sum,int num) { if(sum==t) { add++; } if(t<sum) { return ; } for(int i=num;i<n;i++) { dfs(sum+x[i],i+1); } } int main() { cin>>n>>t; for(int i=0;i<n;i++) { cin>>x[i]; } dfs(0,0); cout<<add<<endl; return 0; }
0.0分
2 人评分
A+B for Input-Output Practice (V) (C++代码)浏览:451 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:512 |
WU-复数求和 (C++代码)浏览:2015 |
Wu-求圆的面积 (C++代码)浏览:1894 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:350 |
水仙花 (C语言代码)浏览:1053 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:517 |
星期判断机 (C语言代码)浏览:859 |
Tom数 (C语言代码)浏览:495 |