欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

神奇的口袋

发布时间:2025/3/8 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 神奇的口袋 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2755:神奇的口袋
查看 提交 统计 提示 提问
总时间限制: 10000ms 内存限制: 65536kB
描述
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。
输入
输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。
输出
输出不同的选择物品的方式的数目。
样例输入
3
20
20
20
样例输出

3

先提一下递归方法,递推之后补充:

#include <iostream> using namespace std; int a[30]; int n; int ways(int w,int k){if(w == 0) return 1;if(k <= 0) return 0;return ways(w,k-1)+ways(w-a[k],k-1); } int main() {cin >> n;for( int i=1;i<=n;++i){cin>>a[i];}cout << ways(40,n) << endl;return 0; }

总结

以上是生活随笔为你收集整理的神奇的口袋的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。