我需要找到长度为n且以d开头的第一个和最后一个数字。
例如。 我需要找到长度为6且从2开始的第一个和最后一个数字 结果应为第一个数字= 200000和最后一个数字= 299999。
我在php中有可用的任何功能来帮助我获得解决此问题的逻辑。??
希望有人可以帮助我。
答案 0 :(得分:5)
您可以尝试依靠一个事实,即最小的数字以全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)
答案 1 :(得分:4)
这里是使用代数获取所需数字的选项。根据数字的宽度,我们可以计算出具有该宽度的最小数字。然后,起始编号就是该值乘以起始第一个数字。而且结束号码也可以取笑。
$length = 6;
$first = 2;
$begin = pow(10, $length-1);
$start = $first * $begin;
$end = (($first + 1) * $begin) - 1;
echo $start . "\n";
echo $end;
200000
299999
这应该优于公认的答案,因为生成数字只需要执行少量算术运算,而不是复杂的字符串操作运算。