【GESP】C++一级练习 luogu-B2068,统计满足条件的 4 位数
属于GESP一级知识点,整除、取余和循环语句综合练习。
luogu-B2068
题目要求
描述
给定若干个四位数,求出其中满足以下条件的数的个数:个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。
输入
输入为两行,第一行为四位数的个数 $n$,第二行为 $n$ 个的四位数。($n\leq100$)。
输出
输出为一行,包含一个整数,表示满足条件的四位数的个数。
输入样例-1
5
1234 1349 6119 2123 5017
输出样例-1
3
题目分析
- 读取$n$的值,表示后续输入的数量
- 循环$n$次,读取每个四位数
- 对每个四位数,计算个位数减去千位数减去百位数减去十位数的结果
- 如果结果大于0,则计数增加1
- 输出满足条件的四位数的个数
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main() {
int n; // 定义变量n
cin >> n; // 从输入流中读取n的值
int a; // 定义变量a
int ans = 0; // 定义变量ans并初始化为0
for (int i = 1; i <= n; i++) { // 循环n次
cin >> a; // 从输入流中读取a的值
int b, c, d, e; // 定义变量b, c, d, e
b = a / 10 / 10 / 10; // 计算a的千位数
c = a / 10 / 10 % 10; // 计算a的百位数
d = a / 10 % 10; // 计算a的十位数
e = a % 10; // 计算a的个位数
if (e - d - c - b > 0) { // 如果a的个位数减去十位数减去百位数减去千位数的结果大于0
ans += 1; // ans加1
}
}
cout << ans; // 输出ans的值
return 0; // 返回0,表示程序执行成功
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权