本關任務:編寫遞歸函數,實現將一個十進制的整數以r(r=2,8,16)進制的形式輸出。
1 #include<stdio.h> 2 void TransformToR(int n,int d)//10進制轉換成任意進制 3 { 4 if(n==0) 5 return ; 6 else 7 { 8 TransformToR(n/d,d); 9 if(d>=10)//如果是10進制以上 10 { 11 if(n%d>=10) 12 { 13 printf("%c",(char)((n%d-10)+'A')); 14 } 15 else//如果余數小於10,則直接輸出 16 printf("%d",n%d); 17 } 18 //如果進制小於10,不會有字母的問題 19 else 20 printf("%d",n%d); 21 } 22 } 23 24 int main() 25 { 26 int n,d; 27 28 29 printf("Input n,r(r=2,8,16):\n"); 30 scanf("%d,%d",&n,&d); 31 TransformToR(n,d); 32 printf("\n"); 33 34 35 return 0; 36 }
