0
点赞
收藏
分享

微信扫一扫

数1的个数

花明 2022-02-14 阅读 84

总时间限制: 

1000ms

内存限制: 

65536kB

描述

给定一个十进制正整数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 <= 10000。

输出

一个正整数,即“1”的个数。

样例输入

12

样例输出

5

分析及代码:

分析:用k来计算总共有多少个1,用i来遍历从1到n,用m表示最低位是否为1,a表示中间量,用a%10来依次看各个位上是否为1,a/10来分离个位。

#include<iostream>

using namespace std;

int main()

{

int n, i, k = 0, m, a;

cin >> n;

for (i = 1;i <= n;i++)

{

a = i;

while (a != 0)

{

m = a % 10;

if (m == 1)

k++;

a = a / 10;

}

}

cout << k;
return 0;

}

举报

相关推荐

0 条评论