ZZULIOJ 1112: 進制轉換(函數專題)

題目描述

輸入一個十進制整數n,輸出對應的二進制整數。常用的轉換方法爲“除2取餘,倒序排列”。將一個十進制數除以2,得到餘數和商,將得到的商再除以2,依次類推,直到商等於0爲止,倒取除得的餘數,即爲所求的二進制數。例如,把52換算成二進制數的計算過程如下圖:

52除以2得到的餘數依次爲0,0,1,0,1,1,倒序排列,得到52對應的二進制數110100。

用遞歸的思想來描述上述計算過程是這樣的:輸出n/2對應的二進制數,然後輸入%2。遞歸函數的實現過程如下:

void convert(int n)

{

   if(n > 0)

   {

      調用自身,輸出n/2對應的二進制數;

       輸出n%2;

    }

}

試試吧!

輸入

輸入一個正整數n。

輸出

輸出n對應的二進制數。

樣例輸入

52

樣例輸出

110100

 

#include<stdio.h>

void convert(int num){

	if (num == 1)
	{
		printf("%d", num % 2);
	}
	else{

		convert(num / 2);
		printf("%d", num % 2);
	}


	/*簡化版

	if (num>0)
	{
		convert(num / 2);
		printf("%d", num % 2);
	}
	
	*/
}
int main(void)
{
	int num;
	scanf("%d", &num);
	convert(num);
}

 

發佈了166 篇原創文章 · 獲贊 60 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章