簡體   English   中英

創建遞歸二進制到十進制函數

[英]Creating a Recursive Binary to Decimal Function

我試圖創建一個遞歸的二進制到十進制函數。 這是我目前的嘗試:

function decToBin(num){
    if(num >= 1){
        (num % 2); //I have to STORE? this somewhere
        decToBin(Math.floor(num/2));
    } 
    // return my stored value here


}

我要對新數字取模,直到它為0。如何存儲函數的每次傳遞? 我只是在函數范圍之外創建全局變量,還是有更好的方法? 謝謝!

通常,使用遞歸函數時,會將“當前值”與下一個迭代的返回值結合在一起。 因此,您將所有“返回值”都組合在一起。

在這種情況下,您需要以下內容:

return decToBin(Math.floor(num/2))+(num % 2);

從而使您的整個功能:

function decToBin(num){
    if(num >= 1){
        return decToBin(Math.floor(num/2))+(num % 2);
    } 
    return '';
}

暫無
暫無

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

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