Google面试题解析:从1到n的整数中1出现的次数2014-12-24题目:输入一个正整数n,求从1到n这n个整数的十进制表示1出现的次数。例如:例如输入12, 那么从1到12的整数中出现1的整数为:1,10, 11和12,1一共出现5次。分析:这题可以简单计算每个数中包含的1的个数,再遍历1-n个整数。实现如下:
#include<iostream>using namespace std;int count_num(int v){int i = v;int num = 0;while(i > 0){if(i%10 == 1)num ++;i = i/10;} return num;}int counts(int n){int i = 0;int num = 0;while( i <= n){num += count_num(i++);}return num;}int main(){cout << "1, 2, ... , 12 has 1 nums: " << counts(12) << endl;return 0;}
输出结果为:1, 2, ... , 12 has 1 nums: 5作者:csdn博客 hhh3h