文章

【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

GESP各级别考纲、真题讲解、知识拓展和练习清单等详见【置顶】【GESP】C++ 认证学习资源汇总

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

bcqm-”系列题目可在编程启蒙题库进行在线评测。

欢迎加入Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答

欢迎加入C++ GESP/CSP认证学习QQ频道,考试资源总结汇总

欢迎加入C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
本文由作者按照 CC BY 4.0 进行授权