题目一。
李白提壶打酒【https://blog.csdn.net/csdnliwenqi/article/details/116331316】
题目二。
某君有n个互不相同的正整数,现在他要从这n个正整数之中无重复的选取任意个数。并仅通过加法凑出整数X。求某君有多少种不同的方案来凑出整数X。
【讲解】
#include <iostream>
using namespace std;
int main() {
int n, x, ans = 0, a[30];
cin >> n >> x;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < (1<<n); i++) {
int num = 0;
for (int j = 0; j < n; j++) {
if (i & (1<<j)) {
num += a[j];
}
}
if (num == x) {
ans++;
}
}
cout << ans << endl;
return 0;
}
如输入6 6 ,1,2,3,4,5,6,输出是4种情况,分别是(6),(1,5),(2,4),(1,2,3)。
本文介绍了一个经典的组合问题:如何利用给定的若干不同数值通过加法组合成特定目标值的方法,并提供了一段C++代码实现,该算法可以计算出所有可能的组合方式。

1008

被折叠的 条评论
为什么被折叠?



