统计满足条件的4位数个数
http://noi.openjudge.cn/ch0105/26/
一:题意
给定n个四位数,求出其中满足以下条件的数的个数:
个位数上的数字减去千位数上的数字,再减去百位数上的数字, 再减去十位数上的数字的结果大于零。
输入为两行,第一行为四位数的个数n,第二行为n个的四位数。
二:分析(本题重点在于判断)
关键词:ans(满足条件的数的个数),n(四位数的个数),a(被判断的四位数)。
因为目录叫做循环控制,所以我们自然要用for语句。
我们构建出一个次数为n的for,在输入的同时用分支结构if进行判断。而想要在if中判断是否符合条件,就要求出四位数a的各位数字。
个位:a除以10的余数,即为a%10。
十位:先将a%100,得出三位数,再通过int类型的特性,去掉余数,即为a%100/10。
百位:方法同上,%1000后去除余数,为a%1000/100。
千位:直接%1000,为a%1000。
然后依题意将各位数字代入表达式中运算,若结果>0,ans自增。若结果<=0,则跳过。
n次循环结束后,输出ans。代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
if(a%10-a/1000-a%1000/100-a%100/10>0)
ans++;
}
cout<<ans;
return 0;
}
创作不易,望多加支持。