GESP二级 - 公园门票计算 - 算法题
公园门票计算
某公园门票价格为:成人票8元/张,儿童票3元/张;某旅游团来公园游玩,该团内有成人和儿童(成人和儿童都有),共花了40元买门票,请你分别计算出成人和儿童可能的人数,按照成人从少到多,儿童从多到少的规律数出结果。
输入描述
无
输出描述
若干行,每行2个整数用空格隔开,分别代表成人和儿童可能的人数(成人从少到多,儿童从多到少)
例如
用例输入 1
用例输出 1
5 0 2 4
解题思路
根据题意,成人票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/fOqk 著作权归作者所有。请勿转载和采集!