【GESP二级】买公园门票暂无标签时间限制:CC++ 1000MS其他语言 2000MS内存限制:CC++ 16MB其他语言 32MB难度:中等出题人:描述某公园门票价格为:成人票8元张儿童票3元张;某旅游团来公园游玩该团内有成人和儿童成人和儿童都有共花了40元买门票请你分别计算出成人和儿童可能的人数按照成人从少到多儿童从多到少的规律数出结果。输入描述无输出描述若干行每行2个整数用空格隔开分别代表
解题思路: 根据题意,成人票8元/张,儿童票3元/张,共花了40元买门票。 设成人票数量为x,儿童票数量为y,则有: 8x + 3y = 40 由上面的方程可知,x和y都必须是整数,并且x的取值范围为[0, 5],y的取值范围为[0, 13]。 根据上述范围,我们可以使用两个循环嵌套,分别遍历x和y的取值,计算8x + 3y的结果,如果等于40,则输出x和y的值。
代码实现:
#include <iostream>
using namespace std;
int main() {
for (int x = 0; x <= 5; x++) {
for (int y = 0; y <= 13; y++) {
if (8*x + 3*y == 40) {
cout << x << " " << y << endl;
}
}
}
return 0;
}
时间复杂度分析: 由于x和y的取值范围分别为[0, 5]和[0, 13],所以嵌套循环的次数为(5+1) * (13+1) = 84次,时间复杂度为O(1)。
原文地址: https://www.cveoy.top/t/topic/jdyI 著作权归作者所有。请勿转载和采集!