簡體   English   中英

找出長度為n且以d開頭的第一個和最后一個數字?

[英]Find first and last number of length n and starting in digit d?

我需要找到長度為n且以數字d開頭的第一個和最后一個數字。

例如。 我需要找到長度為6且從2開始的第一個和最后一個數字。結果應為第一個數字= 200000和最后一個數字= 299999。

我在php中有可用的任何功能來幫助我獲得解決此問題的邏輯。

希望可以有人幫幫我..

您可以嘗試依靠一個事實,即最小的數字以全0結尾,最大的數字以全9 str_repeat ,然后使用str_repeat生成適當的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)

這是一個使用代數獲取所需數字的選項。 根據數字的寬度,我們可以計算出具有該寬度的最小數字。 然后,起始編號就是該值乘以起始第一個數字。 而且結束號碼也可以取笑。

$length = 6;
$first = 2;
$begin = pow(10, $length-1);
$start = $first * $begin;
$end = (($first + 1) * $begin) - 1;
echo $start . "\n";
echo $end;

200000
299999

演示版

這應該優於公認的答案,因為生成數字只需要執行少量算術運算,而不是復雜的字符串操作運算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM