2025年12月GESP(C++一级): 手机电量显示

2025年12月GESP(C++一级): 手机电量显示

题目描述

小杨的手机就像一个聪明的小助手,当电量变化时,它会用不同的方式来提醒我们,假设当前的电量百分比为 P P P:

  • 当电量非常低(不超过 10,即 P ≤ 10 P \leq 10 P≤10),它会显示一个大写字母 R,就像在说:"快给我充电吧!(Red 警告色)"
  • 当电量有点低(超过 10 但不超过 20,即 10 < P ≤ 20 10 < P \leq 20 10<P≤20),它会显示一个大写字母 L,意思是"电量有点 Low 啦!"
  • 当电量比较充足(超过 20,即 P > 20 P > 20 P>20),它就会直接显示具体的数字,比如直接显示 50,表示还有 50 的电量。
输入格式

第一行一个正整数 T T T,代表数据组数。

对于每组数据,一行包含一个正整数 P P P,代表手机电量百分比。

输出格式

对于每组数据,输出一行,代表当前手机显示的电量信息。

输入输出样例 1
输入 1
复制代码
5
10
1
20
99
19
输出 1
复制代码
R
R
L
99
L
说明/提示
样例解释

输入样例 1 共有五组数据:

  • 第一组数据手机电量 P = 10 P = 10 P=10,满足 P ≤ 10 P \leq 10 P≤10,电量非常低,显示 R。
  • 第二组数据手机电量 P = 1 P = 1 P=1,满足 P ≤ 10 P \leq 10 P≤10,电量非常低,显示 R。
  • 第三组数据手机电量 P = 20 P = 20 P=20,满足 10 < P ≤ 20 10 < P \leq 20 10<P≤20,电量有点低,显示 L。
  • 第四组数据手机电量 P = 99 P = 99 P=99,满足 P > 20 P > 20 P>20,电量比较充足,直接显示具体的数字 99 99 99。
  • 第五组数据手机电量 P = 19 P = 19 P=19,满足 10 < P ≤ 20 10 < P \leq 20 10<P≤20,电量有点低,显示 L。
数据范围

对于所有测试点,保证 1 ≤ T ≤ 20 1 \leq T \leq 20 1≤T≤20, 1 ≤ P ≤ 100 1 \leq P \leq 100 1≤P≤100。

思路分析

这是一个典型的条件判断问题。根据不同的电量百分比范围,输出不同的显示内容:

  • P ≤ 10:显示"R"(红色警告)
  • 10 < P ≤ 20:显示"L"(低电量)
  • P > 20:显示具体的电量数值
1. 输入处理
  • 程序首先读取数据组数 t
  • 然后循环 t 次,每次读取一个电量百分比 p
2. 逻辑判断流程
  • 第一层判断p <= 10
    • 符合条件:输出"R"
    • 不符合:进入下一层判断
  • 第二层判断p <= 20
    • 注意:由于第一层已经排除了 p<=10 的情况,这里实际上是 10 < p <= 20
    • 符合条件:输出"L"
    • 不符合:进入else分支
  • 第三层(else)p > 20
    • 直接输出电量数值

代码实现

cpp 复制代码
#include<bits/stdc++.h>  
using namespace std;     

int t, p;                 // 定义全局变量:t(数据组数), p(电量百分比)

int main() {
    cin >> t;             // 读入数据组数
    
    // 循环处理每组数据
    while(t--) {
        cin >> p;         // 读入当前组的电量百分比
        
        // 条件判断
        if(p <= 10) {
            // 电量非常低(≤10):显示R
            cout << "R" << endl;
        } else if(p <= 20) {
            // 电量有点低(10<P≤20):显示L
            // 注意:由于第一个if已经处理了p≤10的情况,
            // 所以这里实际上是10<p≤20的情况,当然你也可以显示的写出来完整的条件
            cout << "L" << endl;
        } else {
            // 电量充足(>20):直接显示数值
            cout << p << endl;
        }
    }
    
    return 0;  // 程序正常结束
}

功能分析

1. 关键逻辑
  • 使用多分支结构:if - else if - else
2. 样例验证

对于题目给出的样例:

复制代码
输入:
5
10    → 输出:R  (p=10 ≤10)
1     → 输出:R  (p=1 ≤10)
20    → 输出:L  (10<20≤20)
99    → 输出:99 (p=99>20)
19    → 输出:L  (10<19≤20)

各种学习资料,助力大家一站式学习和提升!!!

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"##########  一站式掌握信奥赛知识!  ##########";
	cout<<"#############  冲刺信奥赛拿奖!  #############";
	cout<<"######  课程购买后永久学习,不受限制!   ######";
	return 0;
}
  • 一、CSP信奥赛C++通关学习视频课:
    • C++语法基础
    • C++语法进阶
    • C++算法
    • C++数据结构
    • CSP信奥赛数学
    • CSP信奥赛STL
  • 二、CSP信奥赛C++竞赛拿奖视频课:
    • 信奥赛csp-j初赛高频考点解析
    • CSP信奥赛C++复赛集训课(12大高频考点专题集训)
  • 三、考级、竞赛刷题题单及题解:
    • GESP C++考级真题题解
    • CSP信奥赛C++初赛及复赛高频考点真题解析
    • CSP信奥赛C++一等奖通关刷题题单及题解

详细内容:

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转


2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

3、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

  • 2025 csp-j 复赛真题及答案解析(最新更新)
  • 2025 csp-x(山东) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(河南) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(辽宁) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(江西) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(广西) 复赛真题及答案解析(最新更新)
  • 2020 ~ 2024 csp 复赛真题题单及题解
  • 2019 ~ 2022 csp-j 初赛高频考点真题分类解析
  • 2021 ~ 2024 csp-s 初赛高频考点解析
  • 2023 ~ 2024 csp-x (山东)初赛真题及答案解析
  • 2024 csp-j 初赛真题及答案解析
  • 2025 csp-j 初赛真题及答案解析(最新更新)
  • 2025 csp-s 初赛真题及答案解析(最新更新)
  • 2025 csp-x (山东)初赛真题及答案解析(最新更新)
  • 2025 csp-x (江西)初赛真题及答案解析(最新更新)
  • 2025 csp-x (辽宁)初赛真题及答案解析(最新更新)

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

  • 129 道刷题练习和详细题解,涉及:模拟算法、数学思维、二分算法、 前缀和、差分、深搜、广搜、DP专题、 树和图

4、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

· 文末祝福 ·

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"跟着王老师一起学习信奥赛C++";
	cout<<"    成就更好的自己!       ";
	cout<<"  csp信奥赛一等奖属于你!   ";
	return 0;
}
相关推荐
剑锋所指,所向披靡!7 小时前
C++之类模版
java·jvm·c++
C+-C资深大佬8 小时前
C++风格的命名转换
开发语言·c++
No0d1es8 小时前
2025年粤港澳青少年信息学创新大赛 C++小学组复赛真题
开发语言·c++
点云SLAM8 小时前
C++内存泄漏检测之手动记录法(Manual Memory Tracking)
开发语言·c++·策略模式·内存泄漏检测·c++实战·new / delete
好评1248 小时前
【C++】二叉搜索树(BST):从原理到实现
数据结构·c++·二叉树·二叉搜索树
zylyehuo8 小时前
error: no matching function for call to ‘ros::NodeHandle::param(const char [11], std::string&, const char [34])’
c++·ros1
星火开发设计9 小时前
C++ 函数定义与调用:程序模块化的第一步
java·开发语言·c++·学习·函数·知识
天赐学c语言9 小时前
1.20 - x的平方根 && vector的扩容机制以及删除元素是否会释放内存
c++·算法·leecode
CC.GG10 小时前
【C++】用哈希表封装myunordered_map和 myunordered_set
java·c++·散列表
xiaoye-duck11 小时前
C++ string 类使用超全攻略(上):创建、遍历及容量操作深度解析
c++·stl