杂货店有N种不同类型的薯片。克里斯想买尽可能多的芯片。他现在口袋里有M美元,他要求你帮他数一数他能买多少筹码。
格式输入:输入从T开始,测试用例的数量。对于每个测试用例,将有两个整数N和M在第二行中将有N个整数,描述一个i-th芯片的价格。每种芯片都会有无限的供应。
格式输出:输出以“case #X:”开头,其中X是从1开始的测试用例编号,然后是一个整数,这是Chris可以购买的最大芯片数。
制约因素:
·1≤T≤100
·1≤N≤10000
·1≤M≤10^9
·保证价格在1到10^6之间
示例输入(用户输入)和输出(输出为斜体):
6
4 5
1 2 3 4
判例1:5
3 3
5 5 5
案件2:0
3 2
1 1 1
案例3:2
10 5
1 1 1 2 2 2
判例4:5
6 2
1 2 3 6 5 4
案例5:2
1 5
1
案例6:5
`
#include <stdio.h>
int main()
{
int t;
scanf("%d", &t);
for(int i = 1; i <= t; i++)
{
long long int n, m;
scanf("%lld %lld", &n, &m);
int chips[n];
for(int j = 0; j < n; j++)
{
scanf("%d", &chips[j]);
}
if(m > chips[n - 1])
{
printf("Case #%d: %lld\n", i, m);
}
else if(m < chips[n - 1])
{
printf("Case #%d: 0\n", i);
}
}
return 0;
}`
我在“如果别的”部分犯了一个错误。我将m与整个数组进行比较,但我认为必须逐一将m与数组的索引进行比较。我不知道如何编写语法来逐一比较索引。有人知道如何正确地写这个问题的if problem语句吗?
发布于 2022-11-01 08:33:46
如果问题是要求最大数量的包装克里斯可以购买,那么克里斯应该只考虑多少最低价格的数据包,他可以买。
例如,在testcase 1中,包的最低价格是1,所以在这种情况下,如果m= 5,他可以得到5包值1。
因此,首先,您应该找到数据包的最低价格(给定成本数组中的min值)。
然后打印:
printf("case #%d: %d\n", m/min);https://stackoverflow.com/questions/74271771
复制相似问题