《上海市计算机学会竞赛平台2024年8月月赛丙组题目T1 统计得分 T2 等差数列的素性 T3 互质序列》 题解

T1 统计得分

内存限制: 256 Mb时间限制: 1000 ms

题目描述

在一场知识竞赛中,选手答对一题得 11 分,答错不得分且要倒扣 11 分,但扣分不能让分数小于 00。

给定一个由 Y 及 N 构成的字符序列,答对记为 Y,答错记为 N

选手一开始从 00 分开始,请输出选手最后的得分。

输入格式
  • 单个字符序列:保证仅由字母 Y 及 N 组成。
输出格式
  • 单个整数,表示最终得分。
数据范围

设 �n 表示字符序列的长度,1≤n≤100,000。

样例数据

输入:

YNNYYY

输出:

3

解析

这个问题相对简单,只需要遍历输入的字符序列,并根据字符是 'Y' 还是 'N' 来更新得分。每次答对('Y')得 1 分,答错('N')扣 1 分,但得分不能小于 0。

以下是使用 C++ 实现的代码:

#include <iostream>
#include <string>

int main() {
    std::string sequence;
    std::cin >> sequence;

    int score = 0;

    for (char c : sequence) {
        if (c == 'Y') {
            ++score;
        } else if (c == 'N') {
            --score;
            if (score < 0) {
                score = 0; // 防止得分小于0
            }
        }
    }

    std::cout << score << std::endl;

    return 0;
}

以下是对提供的 C++ 代码逻辑的详细解释:

该代码的主要目的是计算一个由 'Y' 和 'N' 组成的字符序列所代表的得分。在这个场景中,'Y' 表示答对一题,得 1 分;'N' 表示答错一题,扣 1 分,但得分不能小于 0。

代码逻辑如下:

  1. 输入读取‌:

    • 使用 std::cin >> sequence; 从标准输入读取一个字符串 sequence。这个字符串仅由 'Y' 和 'N' 组成,代表选手的答题情况。
  2. 初始化得分‌:

    • 声明一个整数变量 score 并初始化为 0。这个变量将用于跟踪选手的当前得分。
  3. 遍历字符序列‌:

    • 使用范围 for 循环 for (char c : sequence) 遍历字符串 sequence 中的每个字符 c
    • 在循环体内,根据字符 c 的值更新得分:
      • 如果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值