解题思路:
用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语言代码)格式错误!!!浏览:1141 |
简单的a+b (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:842 |
WU-C语言程序设计教程(第三版)课后习题11.12 (C++代码)(想学链表的小伙伴可以看看)浏览:905 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:578 |
1024题解浏览:812 |
数组与指针的问题浏览:719 |
【计算直线的交点数】 (C语言代码)浏览:923 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:544 |
C语言程序设计教程(第三版)课后习题10.1 (C++代码)浏览:503 |