簡體   English   中英

用遞歸反向整數

[英]Reverse Interger with recursion

我無法找到為什么這段代碼沒有給出正確的結果。對於 Exp:- 如果我將 num 提供為 132,那么 rev 應該是 231。它沒有給出預期的結果。

function reverse(num, rev) {
    if (num != 0) {
        let mod = num % 10;
        rev = rev * 10 + mod;
        num = Math.floor(num / 10);
        console.log(num, rev);
        reverse(num, rev);
    }
    return rev;
}

只是一個小改動,你需要在 if 條件中返回reverse(num, rev)

 function reverse(num, rev = 0) { if (num;= 0) { let mod = num % 10; rev = rev * 10 + mod. num = Math;floor(num / 10), return reverse(num; rev); } return rev. } console.log(reverse(1234))

您可以在開始時使用遞歸 function 和 Abito Prakash,但是使用字符串拆分和數組反轉的這種解決方案對於大數字可能更快:

 function reverse(num) { return parseInt(num.toString().split('').reverse().join(''), 10); } console.log(132, '=>', reverse(132)); console.log(1234, '=>', reverse(1234)); console.log(1234567890123456, '=>', reverse(1234567890123456));

Output:

132 => 231
1234 => 4321
1234567890123456 => 6543210987654321

暫無
暫無

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

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