目录
C/C++统计满足条件的4位数个数
一、题目要求
1、编程实现
2、输入输出
二、解题思路
1、案例分析
三、程序代码
四、程序说明
五、运行结果
六、考点分析
C/C++统计满足条件的4位数个数
2019年12月 C/C++编程等级考试一级编程题
一、题目要求
1、编程实现
给定若干个四位数,求出其中满足以下条件的数的个数:
个位数上的数字减去千位数上的数字,再减去百位数上的数字, 再减去十位数上的数字的结果大于零。
2、输入输出
输入描述:输入为两行,第一行为四位数的个数n,第二行为n个的四位数,数与数之间以一个空格分开。(n <= 100)
输出描述:只有一行,一个整数,即满足条件的四位数的个数。
输入样例:
5
1234 1349 6119 2123 5017
输出样例:
3
二、解题思路
1、案例分析
- 从给定题目的初步分析可以看出,首先需要从键盘获取一个整数n
- 可以使用int类型进行变量的声明,用来保存键盘输入的数据
- 然后利用for语句循环输入每一个数字,每输入一个数字就将这个数字的个位数减去千位、百位和十位,然后将差和0进行比较,如果大于0,统计个数加1
- 最后输出对应的符合要求的个数
三、程序代码
#include<iostream>
using namespace std;
int main()
{
int n,count=0;
cin>>n;
for(int i=0;i<n;i++)
{
int number,a,b,c,d;
cin>>number;
a = number/1000;
b = number/100%10;
c = number/10%10;
d = number%10;
if(d-a-b-c > 0)
{
count++;
}
}
cout<<count;
return 0;
}
四、程序说明
- 根据题目要求声明2个整形int变量n用来保存输入数字个数,count用来统计符合要求个数
- 然后利用输入流对象cin,从键盘读取变量n的值
- 接着利用for循环逐个输入对应的数字
- 需要额外声明5个整形局部变量:输入的数字number,对应的千位a,百位b,十位c和个位d
- 然后依次求出对应的每一位数字,利用除非和取余运算
- 接着按要求讲各位数字减去其他位的数字和0进行比较,符合条件的count计数加1
- 最后利用输出流对象cout,输出符合要求的统计个数
五、运行结果
5
1234 1349 6119 2123 5017
3
六、考点分析
难度级别:中等,本题相对而言有一点难度,难在循环输入以及四位数的每位数字求解,具体主要考查如下:
- 分析题目,找到解题思路
- 变量的声明和使用
- 输入流对象cin的使用,与流提取运算符 >>结合使用从键盘读取想要的数据
- for循环的使用,知道循环次数的时候推荐使用
- 灵活运用除法运算和取余运算
- if条件判断语句,满足一定条件才能执行后面的语句
- 输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
- 充分掌握变量定义和使用、条件判断语句、循环语句和简单算法知识的使用及输入输出的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!