0

这个函数的输出有什么问题,它在浏览器中打印出 INF,正如我预期的那样打印出 654321 用 C# 编写的完全相同的函数打印出预期的结果。

<?php
        function reverse($n, $r){
            if($n == 0) {
                return $r;
            }
            return reverse($n/10, $r*10 + $n%10);
        }

        echo reverse(123456, 0);
?>
4

2 回答 2

2

试试这个strrev()功能:

strrev('123456'); //654321
于 2013-09-04T09:29:04.173 回答
1

它不进行整数除法。在 C# 中,您处理严格的类型,当您在 C# 中将 25 除以 4 时,您将得到整数结果,6。在 php 中,您将得到 6.25,浮点结果。

intval在递归之前尝试你的结果以获得整数除法

于 2013-09-04T09:31:25.427 回答