问题 AI: 随机体能测试
时间限制: 1.000 Sec 内存限制: 32 MB
题目描述
学校想随机抽取一部分同学参加体能测试,看看同学们的体能怎么样。张老师想了一个办法,找出学号中含有1的同学,让他们参加体能测试;如果某同学的学号含有1个1,那么要测试1次,如果含有2个1,就要参加2次测试。
比如:小明同学的学号为1211,那么他就要参加3次测试。
请问,学号1~n中的同学们,总共要参加多少次测试?
输入
一个整数n(n<=9999)
输出
一个整数,代表1~n号同学总共要参加测试的次数。
样例输入 Copy
11
样例输出 Copy
4
#include <iostream>
using namespace std;
int main()
{
int i,n,cnt=0;
cin >> n;
for (i = 1; i <=n; i++)
{
int t = i;
while (t != 0)
{
int a = t % 10;
if (a == 1)
{
cnt++;
}
t /= 10;
}
}
cout << cnt;
return 0;
}
类比回文数,不清楚数的位数是多少,然后每次都取出末位数字比较