我正在 Windows 10 机器上使用 PHP 7.2.12
我想找出所有可能的4位十进制数的列表,其总和将等于用户指定的总和 .
请确保初始零,即在非零4位数字的开头可能有一个,两个或三个零 .
任何数字都可以在可能数字的任何位置重复 .
我尝试下面的代码找出4位十进制数的列表,其总和将等于14,但我无法打印出列表 .
请有人帮我找出相应的清单以及这些数字的数量 .
谢谢 .
以下是我尝试过的代码:
<?php
// A PHP program using recursive to count numbers
// with sum of digits as given 'sum'
// Recursive function to count 'n' digit numbers
// with sum of digits as 'sum'. This function
// considers leading 0's also as digits, that is
// why not directly called
function countRec($n, $sum)
{
// Base case
if ($n == 0)
return $sum == 0;
if ($sum == 0)
return 1;
// Initialize answer
$ans = 0;
// Traverse through every
// digit and count
// numbers beginning with
// it using recursion
for ($i = 0; $i <= 9; $i++)
if ($sum-$i >= 0)
$ans += countRec($n-1, $sum-$i);
return $ans;
}
// This is mainly a wrapper
// over countRec. It
// explicitly handles leading
// digit and calls
// countRec() for remaining digits.
function finalCount($n, $sum)
{
// Initialize final answer
$ans = 0;
// Traverse through every
// digit from 1 to
// 9 and count numbers
// beginning with it
for ($i = 1; $i <= 9; $i++)
if ($sum - $i >= 0)
$ans += countRec($n - 1, $sum - $i);
return $ans;
}
// Driver Code
$n = 4;
$sum = 14;
echo finalCount($n, $sum);
?>