iT邦幫忙

0

十進制轉二進制的recursion code

說明:D2B是一函式,可以輸入10進制(N)轉成2進制印出而這是寫一半的函式,請完成函式:

void D2B(intN){
if (N==0 or N==1){
print(N)
} else
(To be completed)
}
}

大家好!這題是清大資應所109的入學考,我程式碼還不太熟悉,雖然知道要用除2取餘數的方式轉成2進制,但是一直找不到寫成遞迴函式的方法!
希望大家可以幫幫我><謝謝!!!!

淺水員 iT邦大師 6 級 ‧ 2021-01-19 02:20:21 檢舉
另外也可以用位元運算子處理
N&1 相當於對 2 取餘數
N>>1 相當於除以 2 的整數除法
PS. 不考慮 N 是負數
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-01-18 20:41:02
最佳解答
#include <stdio.h>

void D2B(int N){
	if (N==0 || N==1) {
		printf("%d", N);
		return;
	} else {
		D2B(N / 2);
		printf("%d", N % 2);
	}
}

int main(void) {
	D2B(12);
	return 0;
}

我要發表回答

立即登入回答