题目描述
给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字1的个数。
例如:
当n=2时,写下1,2。
这样只出现了1个1;
当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。
这样出现了5个1。
输入格式
输入一个正整数n。
输出格式
输出一个正整数,即1的个数。
数据范围
n的取值范围:(1≤100001≤n≤10000)
AC代码
#include <iostream>
using namespace std;
int main()
{
int n;
int s=0; //计数器s
cin>>n; //输入数
for(int i=1;i<=n;i++)
{
int q=i; //防止i被修改
while(q)
{
if(q%10==1) //个位为1时计数器++
s++;
q/=10; //抹除个位
}
}
cout<<s; //输出1的个数
}