文章

【GESP】C++一级练习 luogu-P1424, 小鱼的航程(改进版)

GESP一级综合练习,难度★☆☆☆☆。

luogu-P1424

题目要求

题目描述

有一只小鱼,它平日每天游泳 $250$ 公里,周末休息(实行双休日),假设从周 $x$ 开始算起,过了 $n$ 天以后,小鱼一共累计游泳了多少公里呢?

输入格式

输入两个正整数 $x,n$,表示从周 $x$ 算起,经过 $n$ 天。

输出格式

输出一个整数,表示小鱼累计游泳了多少公里。

样例输入 #1

1
3 10

样例输出 #1

1
2000

数据范围

数据保证,$1\le x \le 7$,$1 \le n\le 10^6$。


题目分析

本题目要求我们根据输入的周几和经过的天数,计算小鱼累计游泳的总距离。根据题目描述:

  • 首先,我们需要读取输入的两个正整数,分别表示从周几开始(1到7)和经过的天数。
  • 接着,初始化一个变量用于存储累计游泳的总距离,初始值为0。
  • 然后,使用一个循环遍历经过的天数。在每一天中,我们需要判断当前是工作日还是周末:
    • 如果是工作日(周一到周五),则将250公里累加到总距离中。
    • 如果是周末(周六或周日),则不进行累加。
  • 在循环中,我们还需要更新当前的周几,确保在每次迭代中正确地移动到下一天。
  • 最后,输出小鱼累计游泳的总距离。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;

int main() {
    int a, b; // a: 从周几开始,b: 经过的天数
    cin >> a >> b; // 读取输入的周几和天数
    int max = 0; // 初始化累计游泳距离为0

    // 循环遍历经过的天数
    for (int i = 0; i < b; i++) {
        // 如果当前是工作日(不是周六或周日),则累计游泳距离
        if (a != 6 && a != 7) {
            max += 250; // 每个工作日游泳250公里
        }
        // 如果当前是周日,重置为周一
        if (a >= 7) {
            a = 1; // 重置为周一
        } else {
            a += 1; // 否则,进入下一天
        }
    }
    cout << max; // 输出累计游泳距离
    return 0; // 程序结束
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权