生成数字的所有旋转的 PHP 程序
给定一个整数n ,任务是生成所有可能的左移数字。左移数是当该数的所有数字向左移动一个位置并且第一个位置的数字移动到最后一个位置时生成的数字。
例子:
Input: n = 123
Output: 231 312
Input: n = 1445
Output: 4451 4514 5144
方法:
- 假设n = 123 。
- 将n与10相乘,即n = n * 10 = 1230 。
- 将第一个数字添加到结果数字,即1230 + 1 = 1231 。
- 从结果数字中减去(第一位)* 10 k ,其中k是原始数字中的位数(在本例中,k = 3)。
- 1231 – 1000 = 231是原始数字的左移数字。
下面是上述方法的实现:
PHP
0)
{
$cnt++;
$n = floor($n / 10);
}
return $cnt;
}
// Function to print the left shift numbers
function cal($num)
{
$digits = numberOfDigits($num);
$powTen = pow(10, $digits - 1);
for ($i = 0; $i < $digits - 1; $i++)
{
$firstDigit = floor($num / $powTen);
// Formula to calculate left shift
// from previous number
$left
= (($num * 10) + $firstDigit) -
($firstDigit * $powTen * 10);
echo $left, " ";
// Update the original number
$num = $left;
}
}
// Driver Code
$num = 1445;
cal($num);
// This code is contributed by Ryuga
?>
输出:
4451 4514 5144
有关详细信息,请参阅有关生成数字的所有旋转的完整文章!