解题思路:
用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 人评分
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:623 |
字符串对比 (C语言代码)浏览:1401 |
A+B for Input-Output Practice (III) (C语言代码)浏览:570 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:677 |
C语言训练-求PI* (C语言代码)浏览:613 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1593 |
【计算两点间的距离】 (C语言代码)浏览:1481 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
核桃的数量 (C语言代码)浏览:870 |
C二级辅导-等差数列 (C语言代码)浏览:810 |