计算从1到n中,出现某位数字的次数
- 出现1-9中某位数字次数的算法
/**
* @param input 整数n(1 ≤ n ≤ 1,000,000,000)
* @return 1-9中某个数字在数列中出现的次数
*/
public int calcCount(int input, int x) {
int count = 0;
int temp;
// 依次从个位往上开始计算
for (int i = 1; (temp = input / i) != 0; i *= 10) {
count += (temp / 10) * i;
int current = temp % 10;
if (current > x) {
// 还会出现i次
count += i;
} else if (current == x) {
// (input - temp * i)代表当前位置的低位数字
count += input - temp * i + 1;
}
}
Log.d(TAG, "calcCount() called with: input = [" + input + "], count = [" + count + "]");
return count;
}
- 出现数字0出现次数的算法
/**
* @param input 整数n(1 ≤ n ≤ 1,000,000,000)
* @return 0在数列中出现的次数
*/
public int calcZeroCount(int input) {
int count = 0;
int temp;
// 依次从个位往上开始计算,至最高位-1为止
for (int i = 1; (temp = input / i) / 10 != 0; i *= 10) {
count += (temp / 10) * i;
if (temp % 10 == 0) {
// (input - temp * i)代表当前位置的低位数字,去除首位为0的数字
count += input - temp * i + 1 - i;
}
}
return count;
}
- 出现0-9中某位数字次数的综合算法
public int count(int input, int x) {
int count = 0;
int temp;
// 依次从个位往上开始计算
for (int i = 1; (temp = input / i) != 0; i *= 10) {
// 高位数字
int high = temp / 10;
if (x == 0) {
if (high != 0) {
high--;
} else {
break;
}
}
count += high * i;
int current = temp % 10;
if (current > x) {
count += i;
} else if (current == x) {
// (input - temp * i)代表当前位置的低位数字
count += input - temp * i + 1;
}
}
Log.d(TAG, "count() called with: input = [" + input + "], count = [" + count + "]");
return count;
}
计算从1到n中,出现某位数字的次数的更多相关文章
- 数字序列中某一位数字(《剑指offer》面试题44)
由于这道题目在牛客上没有,所以在此记录一下. 一.题目大意: 数字以0123456789101112131415…的格式序列化到一个字符序列中.在这个序列中,第5位(从0开始计数,即从第0位开始)是5 ...
- 计算1到n整数中,字符ch出现的次数
个位ch个数 + 十位ch个数 * 10 + 百位ch个数 * 100:同时如果某一位刚好等于ch,还需要减去多算的一部分值. #include <stdio.h> //整数1到n,字符c ...
- Java基础知识强化69:基本类型包装类之Character案例(统计字符串中大写小写以及数字的次数)
我们直接看案例如下: package cn.itcast_03; import java.util.Scanner; /* * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数.(不考虑 ...
- 用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法
用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...
- 12月16日 增加一个购物车内product数量的功能, 自定义method,在helper中定义,计算代码Refactor到Model中。
仿照Rails实战:购物网站 教材:5-6 step5:计算总价,做出在nav上显示购物车内product的数量. 遇到的❌: 1. <% sum = 0 %> <% current ...
- 071——VUE中vuex之使用getters计算每一件购物车中商品的总价
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 070——VUE中vuex之使用getters计算每一件购物车中商品的总价
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sqlserver中计算某个特殊字符在字符串中出现的位置
-- ============================================= -- Author: Evan -- Create date: 2018年3月15日10:: -- D ...
- 【Transact-SQL】计算整个表中所有值的出现的次数
原文:[Transact-SQL]计算整个表中所有值的出现的次数 一个表有3列,5行,那么一共有15个值,现在要计算整个表中所有值在表中出现的次数,不过这里表的列数是不确定的,上面的例子是3列,实际上 ...
随机推荐
- mp4封装格式各box类型讲解及IBP帧计算
mp4封装格式各box类型讲解及IBP帧计算 目录 mp4封装格式各box类型讲解及IBP帧计算 box ftyp box moov box mvhd box (Movie Header Box) t ...
- MySQL 间隙锁
一.根据案例二:不同索引加锁顺序的问题,模拟重现死锁(详细操作步骤) 1.RR级别下,更新操作默认会加行级锁,行级锁会对索引加锁 2.如果更新语句使用多个索引,行级锁会先锁定普通索引,再锁定聚簇索引 ...
- 一个导致JVM物理内存消耗大的Bug
概述 最近我们公司在帮一个客户查一个JVM的问题(JDK1.8.0_191-b12),发现一个系统老是被OS Kill掉,是内存泄露导致的.在查的过程中,阴差阳错地发现了JVM另外的一个Bug.这个B ...
- 解析webpack插件html-webpack-plugin
前言: 本文将分为基本概念.基础使用.模块的运用(问题解决)来进行阐述. 一.基本概念 我们为什么会需要HtmlWebpackPlugin插件? 在真实发布项目时,发布的是dist文件夹中的内容,但是 ...
- C++98/11/17表达式类别
目标 以下代码能否编译通过,能否按照期望运行?(点击展开) #include <utility> #include <type_traits> namespace cpp98 ...
- ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found
问题背景描述: 在做图片验证码识别安装 tensorflow 启动程序报错: ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' no ...
- 面向对象案例-学生信息管理系统V0.6
更新版本 面向对象案例 - 学生信息管理系统V1.0 项目要求: 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的方法 1. ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理
上一篇文章(https://www.cnblogs.com/meowv/p/12956696.html)成功使用了Redis缓存数据,大大提高博客的响应性能. 接下来,将完成一个任务调度中心,关于定时 ...
- vue中使用jsx
vue中使用jsx 为什么需要使用jsx呢?这个需要搞清楚 其实vue官方也说了,对于那些非常多v-if v-else的情况,就可以尝试使用render函数或者jsx,不过render函数写简单的结构 ...
- Docker部署nginx,tomcat,es,可视化
nginx [root@iz2zeaet7s13lfkc8r3e2kz /]# docker pull nginx #下载 Using default tag: latest latest: Pull ...