数1的个数

描述

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

输入样例 1 

12

输出样例 1

5
#include
using namespace std ;

int jisuan(int n) {
	int m = 0 ;
	while( n >= 10 ) {
		int g = n % 10 ;
		if( 1 == g ) {
			m++ ;
		}
		n = n / 10 ;
	}
	if( 1 == n ) {
		m++ ;
	}
	return m ;
}

int main() {
	int n ;
	while( cin >> n ) {
		int m = 0 ;
		for( int i = 1 ; i <= n ; i++) {
			m = m + jisuan(i) ;
		}
		cout << m << endl ; 
	}
	return 0 ;
}

如果有帮助,不妨关注一下吧!

你可能感兴趣的:(中国电子学会,1级,c++,算法,开发语言,数学建模,前端,数据结构,图论)