找出长度为n且以d开头的第一个和最后一个数字?

时间:2018-08-30 05:41:02

标签: php numbers

我需要找到长度为n且以d开头的第一个和最后一个数字。

例如。 我需要找到长度为6且从2开始的第一个和最后一个数字 结果应为第一个数字= 200000和最后一个数字= 299999。

我在php中有可用的任何功能来帮助我获得解决此问题的逻辑。??

希望有人可以帮助我。

2 个答案:

答案 0 :(得分:5)

您可以尝试依靠一个事实,即最小的数字以全0结尾,最大的数字以全9结尾,然后使用str_repeat来生成适当的尾数:

echo $d . str_repeat('0', $n-1);
echo $d . str_repeat('9', $n-1);

对于$d = 2$n = 6,这将为您提供200000299999

如果您需要将它们作为整数,则只需

$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

Demo

这应该优于公认的答案,因为生成数字只需要执行少量算术运算,而不是复杂的字符串操作运算。