C語言通過遞迴實現反向計算

2021-06-19 14:02:38 字數 633 閱讀 2700

問題:編寫乙個程式,將乙個整數轉換為二進位制形式。

分析:一般來講,對於數值n,其二進位制數的最後一位是n % 2,因此計算出的第乙個數字恰好是需要輸出的最後一位數字。我們使用乙個遞迴函式實現,在函式中,首先在遞迴調 用之前計算n % 2的數值,然後在遞迴呼叫語句之後進行輸出。這樣,計算出的第乙個數值反而在最後一位輸出。為了得出下乙個數字,需要把原數值除以2(相當於在十進 制下把小數點左移一位)。如果此時得出的數值是偶數,則下乙個二進位制位的數值是0;若得出的是奇數,則下乙個二進位制位的數值就是1。例如:5是奇數,因此最低位一定 是1,5/2的數值是2(整數除法),所以下一位值是0。這時已經得到了數值01。重複上述計算,即使用2除以2得出1,而1 % 2的數值是1,因此下一位值是1。這時得到的數 值是101。當被2除的結果小於2時,說明已計算至最後一位二進位制位,因此此時停止計算。

程式:#include void to_binary(unsigned long);

int main(void)

printf("done.\n");

return 0;

}void to_binary(unsigned long n)

putchar('0' + r);

return;

}

c語言遞迴函式實現

遞迴和非遞迴分別實現第n個斐波那契數 遞迴 include includeint fib int n return fib n 1 fib n 2 int main 非遞迴 include includeint fib2 int n return third int main 編寫乙個函式實現n k...

實現通過C語言連線redis

實現c語言連線redis,首先需要將redis的環境配置好,即能實現用redis cli連線redis server。網上有很多教程,這裡就不再描述了。1.在存放redis的目錄中執行 cd deps hiredis 切換到hiredis目錄。2.在hiredis目錄中,執行 make。3.執行 c...

C語言實現遞迴演算法

c語言實現遞迴演算法 遞迴演算法是運用於函式呼叫中的。遞迴的概念 在乙個函式體內呼叫自身稱為函式的遞迴呼叫。遞迴呼叫的原理 需要在函式內滿足一定的條件後不在呼叫自身或者結束,或者呼叫其它函式,否則容易出現類似死迴圈的情況,程式將癱瘓。已知 f 1 1 f 0 0,fn n f n 1 f n 2 求...