點擊👇郵我
試題 算法訓練 十進制轉2進制輸出
資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
編寫遞歸函數,實現將一個十進制的正整數以二進制的形式輸出。
注:不考慮符號位,僅從二進制數不爲0的最高位開始輸出。
輸入格式
一個十進制正整數
輸出格式
該整數對應的二進制數
樣例輸入
一個滿足題目要求的輸入範例。
例:
96
樣例輸出
與上面的樣例輸入對應的輸出。
例:
1100000
數據規模與約定
輸入爲正整數
代碼
#include<stdio.h>
void f(int a){
if(a==0){//a爲0時結束遞歸
return;
}
f(a>>1);//每次遞歸a右移一位,因爲從高位開始輸出所以先遞歸在輸出
printf("%d",a&1);//a和1按位與,0得0,1得1
}
int main(){
int a;
scanf("%d",&a);
f(a);
return 0;
}