解题思路:
用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 (C语言代码)浏览:685 |
模拟计算器 (C语言代码)浏览:966 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:696 |
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:866 |
模拟计算器 (C++代码)浏览:885 |
1048题解(读入回车问题)浏览:628 |
数组与指针的问题浏览:760 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:627 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:644 |