题目
1到整数n(2≤n≤2020)的所有数字中,共有多少个2?:
1到整数n(2≤n≤2020)的所有数字中,共有多少个2?
#include<stdio.h>
int countdigit(int x)//定义一个函数计算2的个数
{
int a = 0;//定义一个临时的变量来存放2
int count = 0;//计数器
while (x != 0)
{
a = x % 10;//取个位上的数字
x = x / 10;//去除已经取到的个位,将原来个位前面的移到个位上
if (a == 2)
{
count++;
}
}
return count;
}
int main()
{
int n = 0;//输入的数
int i = 0;//循环次数
int sum = 0;
scanf("%d", &n);
for ( i = 1; i <= n; i++)
{
sum += countdigit(i);
}
printf("%d\n", sum);
return 0;
}
总结:
这道题主要考察的是对取模运算符 % (求余数)和除法运算符 / 的运用:
1.取模运算符
参与运算的量均为整型。并且参与运算的量可以为负数。
取模运算的结果等于两个数相除后的余数。
例如:
20 % 10 = 0 ; 5 % 2 = 1 ; 1 % 2 = 1
2.除法运算符
参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。
除号的正负取舍和一般的算数一样,符号相同为正,相异为负。
除法运算符的结果等于两个数相除的商。
例如:
20 / 10 = 2 ; 5 / 2 = 2 ;1 / 2 = 0 ; 5 / 2.0 = 2.5