问题描述
火柴盒长为 LL,宽为 W(1\leq L,W\leq 100)W(1≤L,W≤100),高度保证大于所有放入火柴的厚度(火柴只能按照长宽水平放,当然也可以水平斜着,想象下生活中的)。给你 N(1\leq N\leq 50)N(1≤N≤50) 根火柴,知道每一根火柴的长度,问有多少根火柴可以放进该火柴盒。
输入格式
第一行输入 N,LN,L 和 WW。
接下来 NN 行每行输入一个 11 到 10001000 范围内的一个整数,表示火柴的长度。
输出格式
输出能够装进火柴盒的火柴的数量。
输入数据 1
5 3 4
3
4
5
6
7
输出数据 1
3
输入数据 2
2 12 17
21
20
输出数据 2
1
#include<bits/stdc++.h>
using namespace std;
signed main()
{
int n, l, r;
cin >> n >> l >> r;
int maxx = sqrt(l * l + r * r);//勾股求能放进的最大长度
int cnt = 0;
while (n--)
{
int x;
cin >> x;
if (x <= maxx) cnt++;//如果这个数小于等于最大长度就是能放进
}
cout << cnt << '\n';
}
【以下回答由 GPT 生成】
对于这个问题,可以按照以下步骤解决:
下面是具体的代码实现:
#include <iostream>
#include <vector>
int main() {
int N, L, W;
std::cin >> N >> L >> W;
std::vector<int> matches;
for (int i = 0; i < N; i++) {
int length;
std::cin >> length;
matches.push_back(length);
}
int count = 0;
for (int i = 0; i < matches.size(); i++) {
if (matches[i] <= L - 2 && matches[i] <= W - 2) {
count++;
}
}
std::cout << count << std::endl;
return 0;
}
注意:上述代码使用了一个 std::vector 来存储火柴的长度,这是因为我们需要动态地添加和访问火柴的长度。另外,我们使用了两个循环来分别读取输入和计算结果。
希望以上解决方案对您有所帮助。如果您还有任何问题,请随时提问。
【相关推荐】