专栏首页AI那点小事【剑指offer】31.整数中1出现的次数

【剑指offer】31.整数中1出现的次数

题目

求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。


分析

github链接:JZ31-整数中1出现的次数


C++代码

#include <iostream>
using namespace std;

class Solution {
	public:
	    int NumberOf1Between1AndN_Solution(int n){
			int m = n;
			int base = 1;
			int x;
			int ans = 0; 
			while(m){
				x = m % 10;
				m /= 10;
				ans += m*base;
				if(x == 1){
					ans += (n % base) + 1;
				}else if( x > 1){
					ans += base;
				}
				base *= 10;
			}
			return ans;
	    }
};

int main()
{
	int n;
	while(cin>>n){
		Solution s;
		cout<<s.NumberOf1Between1AndN_Solution(n);
	}
	
	return 0;
 } 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CCF考试——201412-4最优灌溉

      雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉。   为了灌溉,雷雷需要建立一些水渠,以连...

    AI那点小事
  • CCF考试——201609-1最大波动

      小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘...

    AI那点小事
  • 算法训练 未名湖边的烦恼

    问题描述   每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。   每天早上,租鞋窗...

    AI那点小事
  • python: int函数

    JNingWei
  • 源码阅读--Collections.sort

    这是一个boolean值。说白了就是,如果用户指定归并排序那就归并排序,否则就是ComparableTimSort。归并排序比较常见,就不讲了。贴一下Compa...

    提莫队长
  • C程序设计(第四版)课后习题完整版 谭浩强编著

    答:程序就是一组计算机能识别和执行的指令。 程序设计是指从确定任务到得到结果,写出文档的全过程。(一般经历6个阶段:①问题分析;②设计算法;③编写程序;④对源程...

    用户2417870
  • 如何去掉bootstrap table中表格样式中横线竖线

    王小婷
  • 408. 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示) 样例 a = 11 b = 1 返回 100 非常惭愧还不是自己想来的算法,注意到几点: 1.数...

    和蔼的zhxing
  • Golang Leetcode 202. Happy Number.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89012332

    anakinsun
  • 两个有序数组中查找第K大数

    题目:两个数组A、B,长度分别为m、n,即A(m)、B(n),分别是递增数组。求第K大的数字。

    大江小浪

扫码关注云+社区

领取腾讯云代金券