1112: 進制轉換(函數專題)
時間限制: 1 Sec 內存限制: 128 MB
提交: 3448 解決: 2599
[提交] [狀態] [討論版] [命題人:admin]
題目描述
輸入一個十進制整數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 n)
{ int m;if(n > 0){m=n%2;convert(n/2);printf("%d",m);}
}
int main()
{int n;scanf("%d",&n);convert(n);
}