Welcome

首页 / 软件开发 / 数据结构与算法 / Google面试题解析:从1到n的整数中1出现的次数

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