计算1到n整数中,字符ch出现的次数
#include <stdio.h> //整数1到n,字符ch出现的次数;如1到12,1出现5次
int count1s (int n, char ch){
int i = ch - '0';
int count = 0;
int j = 1;
int m = n;
int t = 0;
int k = 1; if (i == 0) i = 10;
//循环比较最后一位,/10 移位
while (m > 0){
int t = i;
int count1 = 0;
while (t <= m){
count1++;
t += 10;
}
count += count1 * j;
j *= 10;
m /= 10;
} //减去多加的部分; 如110中计算1出现个数,在计算十位时多加9,需要减去。在计算百位是也多加了89,需要减去
m = n;
j = 0; while (m){
if (m % 10 == ch - '0'){
j = t;
if (j != 0){
int a = 0;
k = 1;
for (a = 0; a < j; a++) k *= 10;
count = count - (k - (n % k) - 1);
}
}
m /= 10;
t++;
} return count;
} #if 1 //普通的逐个整数比较的测试程序 //某个整数中1出现的次数
int NumberOfCh(unsigned int n, char ch)
{
int number = 0;
while (n)
{
if(n % 10 == ch - '0')
number ++;
n = n / 10;
} return number;
} //求1到n中所有整数中1出现的总次数
int ceshi(unsigned int n, char ch)
{
int number = 0;
int i = 1;
for(i = 1; i <= n; ++ i)
number += NumberOfCh(i, ch); return number;
}
#endif int main (void){
#if 0
int i = 0;
char ch = '0';
for (i = 0; i < 65535; i++){
for (ch = '0'; ch <= '9'; ch++){
if (count1s (i, ch) != ceshi (i, ch)){
printf ("%d %c\n", i, ch);
return -1;
}
}
printf ("%d\n", i);
}
#else
printf ("%d\n", count1s(1365535, '5')); printf ("%d\n", ceshi (1365535, '5')); #endif
}
计算1到n整数中,字符ch出现的次数的更多相关文章
- 1到n的整数中,1出现的次数
参考链接:https://discuss.leetcode.com/topic/18054/4-lines-o-log-n-c-java-python 1到n的整数中,1出现的次数,如11中,1出现了 ...
- (算法)从0到n整数中数字2出现的次数
题目: 数出0到n(含)中数字2出现了几次. 思路: 1.暴力方法,数出每个数字包含几个2,然后累加起来. 2.分析:分别考虑数字n每一位出现2的次数,如123123: 从左往右考虑4123123: ...
- 233. Number of Digit One *HARD* -- 从1到n的整数中数字1出现的次数
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
- 剑指offer-第五章优化时间和空间效率(从1到n的整数中1出现的次数)
题目:输入一个整数n,从1到n这n个十进制整数中1出现的次数. 思路1:对1到n中的任意一个数i对其进行求余数来判断个位是否为1,然后再求除数,判断十位是否为1.统计出1的个数.然后对1到n用一个循环 ...
- 输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少
输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少? 例子:输入数字9,则输出结果位9.因为[0-9]中,只有数字7有连续的三个‘1’出现,别的都没有,所以一共有9个数字 ...
- ZT 计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48
计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48 分类: C/C++ [转]计算一个无符整数中1Bit的个数(1) Count the number of bits ...
- 【剑指offer】面试题32:从1到n整数中1出现的次数
题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.A ...
- C#中字符转换问题详解
C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名.数值类型间相互转换.字符的 ASCII 码和 Unicode 码.数值字符串和数值之 ...
- 算法-找出与目标数字相同的digit组成的整数中比该数字大的数集中的最小数字
题目: 给出1个正整数,找到用与这个数字相同的digit组成的整数中比这个数字大的数集中的最小数字.比如:12352874 的结果是 12354278 分析: 这道题目的考虑目标是数组的查找与排序. ...
随机推荐
- MYSQL使用指南(下)
在上篇我们讲了登录.增加用户.密码更改等问题.下篇我们来看看MySQL中有关数据库方面的操作.注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束. 一 ...
- CI 笔记 datagrid的调用,不支持多页面多次调用js
在导航列表中,调用datagrid时,如果用js加载datagrid时,不知为何,报“404错误”找不到网页, 用datagrid时,用网页的形式调用,则没有问题. ----------------- ...
- Oracle11g服务及实例
1Orcl服务说明 1) Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备 ...
- 原生与jqueryDOM
总结与复习原生与jquery的DOM操作. 获取元素节点: $(".class") $("#id") $(".class div") $(& ...
- linear model for classification
不同error function比较
- div模块变灰
整站变灰目前没发现什么特别好的办法,但是div(或者其他标签模块)模块变灰方法兼容性还不错. .gay_box{ filter: grayscale(100%); -webkit-filter: gr ...
- python使用pyapns进行ios推送消息
Pyapns 提供了通用的Apple Push Notification Service (APNS).该解决方案使用了开源的Twisted server,支持原生的Python和Ruby API. ...
- 越狱开发:用iosOpenDev配置越狱开发环境 编写第一个hello world-b
上网搜索越狱环境搭建,查到iosOpenDev软件,是个很方便的编写插件,而且可以直接用Xcode创建的工具,便开始着手学习如何去安装 集合了网上的方法后,我安装的时候发现: 1.作者最后更新的时间是 ...
- BCB 语言类
整理日: 2015年2月16日 EcLanguage.h /*--------------------------------------------------------------------- ...
- Mac上RoR环境搭建问题
昨天一晚上折磨的我啊都快疯掉了. 按照http://railstutorial-china.org方法配制,到rvm requirements这个命令执行时就麻烦事来了. WutekiMacBook- ...