找到长度为n的第一个和最后一个数字,从数字d开始?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找到长度为n的第一个和最后一个数字,从数字d开始?相关的知识,希望对你有一定的参考价值。
我需要找到长度为n的第一个和最后一个数字,并以数字d开头。
例如。我需要找到长度为6且从2开始的第一个和最后一个数字。结果应该是第一个数字= 200000,最后一个数字= 299999。
我有任何可用的功能,以帮助我得到一个逻辑来解决这个问题。
希望可以有人帮帮我..
答案
你可以尝试依赖这样一个事实:最小的数字将在所有0中结束并且在所有9中最大,然后使用str_repeat
生成适当的拖尾数字:
echo $d . str_repeat('0', $n-1);
echo $d . str_repeat('9', $n-1);
对于$d = 2
和$n = 6
,这将给你200000
和299999
。
如果你需要它们作为整数,那就行了
$start = (int)($d . str_repeat('0', $n-1));
$finish = (int)($d . str_repeat('9', $n-1));
var_dump($start);
var_dump($finish);
输出:
int(200000)
int(299999)
另一答案
这是一个使用代数来获取所需数字的选项。根据数字的宽度,我们可以计算出该宽度的最小数字。然后,起始编号只是该值乘以起始的第一个数字。结尾的数字也可以被取消。
$length = 6;
$first = 2;
$begin = pow(10, $length-1);
$start = $first * $begin;
$end = (($first + 1) * $begin) - 1;
echo $start . "\n";
echo $end;
200000
299999
这应该胜过接受的答案,因为生成数字只需要几个算术运算,而不是复杂的字符串操作操作。
以上是关于找到长度为n的第一个和最后一个数字,从数字d开始?的主要内容,如果未能解决你的问题,请参考以下文章