我试图解决此问题:给您两个整数(A和B)。如果A
function showAB($a, $b) {
if ($a > $b) {
if ($a == $b) {
return $a;
} else {
return $a . "<br>" . showAB($a - 1, $b);
}
}
else {
if ($a == $b) {
return $a;
} else {
return $a . "<br>" . showAB($a + 1, $b);
}
}
}
但是,有人告诉我,这个问题的解决方案可以用两行或更少的代码来完成,所以我的问题是关于优化现有功能。
答案 0 :(得分:1)
您仍然可以进行优化而不会使外观看起来很丑陋,尤其是消除毫无意义的逻辑。如果您想要1个衬板,请参考注释,否则您可以删除else语句,并且仍然很容易阅读:
function showAB($a, $b) {
if ($a < $b) {
return $a . "<br>" . showAB($a + 1, $b);
}
if ($a > $b) {
return $a . "<br>" . showAB($a - 1, $b);
}
return $a;
}
答案 1 :(得分:0)
高尔夫?您可以使用三元运算符?
.. :
和'spaceship'运算符<=>
给 -1/0/1 赋予小于/等于/大于
function showAB(int $a, int $b) : string
{
return $a . '<br>' . PHP_EOL . ($a === $b ? '' : showAB($a - ($a<=>$b), $b));
}