題目描述
輸入一個十進制整數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);
}