公园门票计算

某公园门票价格为:成人票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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录