题目描述
学校想随机抽取一部分同学参加体能测试,看看同学们的体能怎么样。张老师想了一个办法,找出学号中含有1的同学,让他们参加体能测试;如果某同学的学号含有1个1,那么要测试1次,如果含有2个1,就要参加2次测试。
比如:小明同学的学号为1211,那么他就要参加3次测试。
请问,学号1~n中的同学们,总共要参加多少次测试?
输入
一个整数n(n<=9999)
输出
一个整数,代表1~n号同学总共要参加测试的次数。
样例输入
11
样例输出
4
代码如下:
#include<stdio.h>
int main()
{
int n;
int g, c = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++)//前n个数
{
int t = i;
while (t != 0)//第n个数
{
g = t % 10;//最后一位
if (g == 1)//判断每个数是否含1
{
c++;
}
t = t / 10;//切换成前一位数
}
}
printf("%d", c);
return 0;
}