代码拉取完成,页面将自动刷新
同步操作将从 star/offer100 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php
/**
* 整数中1出现的次数(从1到n整数中1出现的次数)
* 例如 1、10、11、12、13因此共出现6次,
*/
function NumberOf1Between1AndN_Solution($n)
{
if ($n < 1) {
return 0;
}
$len = getLenNum($n);
if ($len == 1) {
return 1;
}
$tem = pow(10, $len -1);
$first = intval($n / $tem); // 第一位数
$firstOneNum = $first == 1 ? $n % $tem + 1: $tem; //·
$otherOneNum = $first * ($len - 1) * (intval($tem / 10));
return $firstOneNum + $otherOneNum + NumberOf1Between1AndN_Solution($n % $tem);
}
function getLenNum($n)
{
$len = 0;
while ($n != 0) {
$len++;
$n = intval($n / 10);
}
return $len;
}
$n = 327; // 0-300, 300-327
var_dump(NumberOf1Between1AndN_Solution($n));
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。