題目說明
給予一個十進位整數,請撰寫一程式可以將此十進位整數轉換為指定的進制的整數。
輸入說明
輸入分為兩部份,包括指定的進制數 (2<=x<=16) 與的十進位整數 (0<n<1000000000)
輸出說明
經轉換後的新進位制的整數 ( y )
範例
輸入 : | 輸出 : |
16 1234 | 4D2 |
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- int n,i,base, r[10];
- scanf("%d %d",&base,&n);
- if(base == 2)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%2;
- n=n/2;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 3)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%3;
- n=n/3;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if (base == 4)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%4;
- n=n/4;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 5)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%5;
- n=n/5;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 6)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%6;
- n=n/6;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 7)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%7;
- n=n/7;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 8)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%8;
- n=n/8;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 9)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%9;
- n=n/9;
- }
- i--;
- for(;i>=0;i--)
- printf("%d",r[i]);
- printf("\n");
- }
- else if(base == 10)
- {
- printf("%d",n);
- printf("\n");
- }
- else if(base == 11)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%11;
- n=n/11;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- else if(base == 12)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%12;
- n=n/12;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else if(r[i]==11)
- printf("B");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- else if (base == 13)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%13;
- n=n/13;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else if(r[i]==11)
- printf("B");
- else if(r[i]==12)
- printf("C");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- else if (base == 14)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%14;
- n=n/14;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else if(r[i]==11)
- printf("B");
- else if(r[i]==12)
- printf("C");
- else if(r[i]==13)
- printf("D");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- else if (base == 15)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%15;
- n=n/15;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else if(r[i]==11)
- printf("B");
- else if(r[i]==12)
- printf("C");
- else if(r[i]==13)
- printf("D");
- else if(r[i]==14)
- printf("E");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- else if (base == 16)
- {
- for(i=0;n!=0;i++)
- {
- r[i]=n%16;
- n=n/16;
- }
- i--;
- for(;i>=0;i--)
- {
- if(r[i]==10)
- printf("A");
- else if(r[i]==11)
- printf("B");
- else if(r[i]==12)
- printf("C");
- else if(r[i]==13)
- printf("D");
- else if(r[i]==14)
- printf("E");
- else if(r[i]==15)
- printf("F");
- else
- printf("%d",r[i]);
- }
- printf("\n");
- }
- system("PAUSE");
- return 0;
- }
Hiç yorum yok:
Yorum Gönder