华为-称砝码

网友投稿 808 2022-08-25

华为-称砝码

华为-称砝码

题目链接

​​每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。

注:

称重重量包括0

方法原型:public static int fama(int n, int[] weight, int[] nums)

输入描述:

输入包含多组测试数据。对于每组测试数据:第一行:n --- 砝码数(范围[1,10])第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000])第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,6])

输出描述:

利用给定的砝码可以称出的不同的重量数

示例1

输入

复制

21 22 1

输出

复制

5

题解:

使用vector存储所有可能称出的重量

#include #include #include using namespace std;const int N = 10;int main(){ int n, m[N], x[N]; while (cin >> n){ vector vct; vct.push_back(0); for (int i = 0; i < n; i++){ cin >> m[i]; } for (int i = 0; i < n; i++){ cin >> x[i]; } for (int i = 1; i <= x[0]; i++){ vct.push_back(i * m[0]); } for (int i = 1; i < n; i++){ int l = vct.size(); for (int j = 1; j <= x[i]; j++){ for (int k = 0; k < l; k++){ int idx = j * m[i] + vct[k]; if (find(vct.begin(), vct.end(), idx) == vct.end()){ vct.push_back(idx); } } } } cout << vct.size() << endl; } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LeetCode-1143. Longest Common Subsequence
下一篇:6个简单的BUG追踪技巧(如何对bug进行跟踪管理)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~