题目链接

魔芋

题目描述

小美一周(7天)的工作时长根据每日最高气温 的不同而变化,规则如下:

  • ,工作 4 小时。
  • ,工作 5 小时。
  • ,工作 6 小时。
  • ,工作 8 小时。

输入:

  • 一行输入 7 个整数,分别表示从周一到周日的最高气温。

输出:

  • 输出一个整数,代表小美在这一周内的总工作时长。

解题思路

本题是一个简单的模拟题,我们只需要根据题目给定的规则计算一周的总工作时长。

  1. 初始化:定义一个整型变量 total_hours 并初始化为 0,用于累计总工作时长。

  2. 循环读取:题目明确指出输入为 7 天的气温,因此我们可以使用一个循环,迭代 7 次。

  3. 条件判断:在循环的每一次迭代中,我们读取当天的气温 ,然后使用 if-else if-else 结构来判断 所在的区间:

    • 如果 ,将 total_hours 加上 4。
    • 如果 (并且不满足前一个条件,即 ),将 total_hours 加上 5。
    • 如果 (并且不满足前两个条件,即 ),将 total_hours 加上 6。
    • 否则 (即 ),将 total_hours 加上 8。
  4. 输出结果:循环 7 次结束后,total_hours 中存储的就是一周的总工作时长,直接输出该变量的值即可。

代码

#include <iostream>

using namespace std;

int main() {
    int total_hours = 0;
    // 循环7次,代表一周7天
    for (int i = 0; i < 7; ++i) {
        int temp;
        cin >> temp;
        if (temp > 40) {
            total_hours += 4; // 温度大于40,工作4小时
        } else if (temp >= 38) {
            total_hours += 5; // 38 <= 温度 <= 40,工作5小时
        } else if (temp >= 36) {
            total_hours += 6; // 36 <= 温度 <= 37,工作6小时
        } else {
            total_hours += 8; // 温度小于36,工作8小时
        }
    }
    cout << total_hours << '\n';
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int totalHours = 0;
        // 循环7次,代表一周7天
        for (int i = 0; i < 7; i++) {
            int temp = sc.nextInt();
            if (temp > 40) {
                totalHours += 4; // 温度大于40,工作4小时
            } else if (temp >= 38) {
                totalHours += 5; // 38 <= 温度 <= 40,工作5小时
            } else if (temp >= 36) {
                totalHours += 6; // 36 <= 温度 <= 37,工作6小时
            } else {
                totalHours += 8; // 温度小于36,工作8小时
            }
        }
        System.out.println(totalHours);
    }
}
# 读取一行7个温度,并转换为整数列表
temps = list(map(int, input().split()))

total_hours = 0
# 遍历温度列表
for temp in temps:
    if temp > 40:
        total_hours += 4 # 温度大于40,工作4小时
    elif temp >= 38:
        total_hours += 5 # 38 <= 温度 <= 40,工作5小时
    elif temp >= 36:
        total_hours += 6 # 36 <= 温度 <= 37,工作6小时
    else:
        total_hours += 8 # 温度小于36,工作8小时

print(total_hours)

算法及复杂度

  • 算法:模拟。直接根据题目描述的逻辑进行计算。
  • 时间复杂度:。因为输入总是 7 个整数,循环次数是固定的,所以执行时间是一个常数。
  • 空间复杂度:。我们只使用了少数几个变量来存储总时长和临时温度,所需空间是固定的。Python代码中虽然存储了7个温度的列表,但数量级仍是常数。