文档章节

编写一个方法,数出从0到n中数字2出现了几次?

BearCatYN
 BearCatYN
发布于 2015/04/24 18:33
字数 234
阅读 143
收藏 0

编写一个方法,数出从0到n中数字2出现了几次?
例如:如果n为20,那么0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 中共2共出现了3次。


答案1:

echo substr_count( implode('', range(0, $n)), '2' );

答案2:

function countTwo($start, $end){
$c = 0;
for($i=$start; $i<=$end; $i++){
$c += substr_count($i, '2');
}
return $c;
}
echo( countTwo(0, 20) );

答案3:

function countNumber($n, $digit) {
$power = 1; //10为底的幂,代表当前计数的位
$count = 0;
while($power <= $n) {
$r = $n % (10 * $power); //$r 为 $n 不断十进制右移移除的数字组合的数值
$m = ($n-$r)/(10 * $power);//$m 为 $n 不断十进制右移后的值
$currentDigit = intval($r / $power);
if($currentDigit < $digit) {
$count += $m * $power;
} elseif($currentDigit > $digit) {
$count += ($m + 1) * $power;
} else {
$count += ($m + 1) * ($r % $power + 1);
}
$power *= 10;
}
return $count;
}


© 著作权归作者所有

共有 人打赏支持
BearCatYN
粉丝 27
博文 158
码字总数 11947
作品 0
朝阳
程序员
编写一个方法,数出从0到n中数字2出现了几次

编写一个方法,数出从0到n中数字2出现了几次? 例如:如果n为20,那么0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 中共2共出现了3次。 思路: 1、暴力方法,...

一贱书生
2016/11/28
67
0
[剑指offer] 数组中重复的数字

本文首发于我的个人博客:尾尾部落 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出...

繁著
07/27
0
0
Codeforces 864D - Make a Permutation! 【贪心】

D. Make a Permutation! time limit per test 2seconds memory limit per test 256megabytes Ivan has an array consisting of n elements. Each of the elements is aninteger from 1 to n.......

my_sunshine26
2017/09/25
0
0
SCU - 4572 醉后不知天在水,满船清梦压星河【思维】

传送门 题意: 在自然数序列中 (0,1,2,3,4,5….),求去掉所有含2,3,5,7的数字后 (0,1,4,6,8,9…)的第k个数. 思路: 这道题就很有意思啦.. 去掉后我们可以发现从小到大变成了(0, 1, 4, 6, 8, 9)即...

anxdada
04/20
0
0
Zju1610 Count the Colors

Description 画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了。 你的任务就是要数出你随后能看到的不同颜色的段的数目。 Input 每组测试数据第一行只有一个整数n, 1 <= n <= 80...

qq_39399999
2017/12/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES6 Promise

Promise promise是异步编程的一种解决方案 1 什么是异步? 异步模式,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则...

NDweb
14分钟前
0
0
Python百分登顶年度编程语言排行榜

今天 IEEE Spectrum 发布了 2018 年度顶级编程语言排行榜。该榜单可根据流行趋势、职业方向、语言类型等多个标准各自细分生成榜单,也可以综合多个标准进行排列,使用者可以根据自己的需求过...

六库科技
19分钟前
0
0
consul笔记

安装和启动就不说了,很简单。 注册一个服务: http://localhost:8500/v1/agent/service/register put请求,json格式内容如下 { "ID": "userServiceId", //服务id "Name": "userService", //服...

朝如青丝暮成雪
19分钟前
0
0
iOS CollectionView 的那些事

UICollectionView是开发中用的比较多的一个控件,本文记录UICollectionView在开发中常用的方法总结,包括使用UICollectionViewFlowLayout实现Grid布局、添加Header/Footer、自定义layout布局...

aron1992
19分钟前
0
0
linux tar.gz zip 解压缩 压缩命令

http://apps.hi.baidu.com/share/detail/37384818 download ADT link http://dl.google.com/android/ADT-0.9.6.zip download SDK link http://dl.google.com/Android/android-sdk_r11-linux_......

owensliu
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部