小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

題目1130: 數(shù)制轉(zhuǎn)換

 herowuking 2015-06-14
題目描述

求任意兩個(gè)不同進(jìn)制非負(fù)整數(shù)的轉(zhuǎn)換(2進(jìn)制~16進(jìn)制),所給整數(shù)在long所能表達(dá)的范圍之內(nèi)。
不同進(jìn)制的表示符號(hào)為(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F(xiàn))。


輸入

輸入只有一行,包含三個(gè)整數(shù)a,n,b。a表示其后的n 是a進(jìn)制整數(shù),b表示欲將a進(jìn)制整數(shù)n轉(zhuǎn)換成b進(jìn)制整數(shù)。a,b是十進(jìn)制整數(shù),2 =< a,b <= 16。


輸出

可能有多組測(cè)試數(shù)據(jù),對(duì)于每組數(shù)據(jù),輸出包含一行,該行有一個(gè)整數(shù)為轉(zhuǎn)換后的b進(jìn)制數(shù)。輸出時(shí)字母符號(hào)全部用大寫表示,即(0,1,...,9,A,B,...,F(xiàn))。


樣例輸入
4 123 10

樣例輸出
27

提示 [+]

*** 提示已隱藏,點(diǎn)擊上方 [+] 可顯示 ***


來(lái)源

【思路】

 



  1. /********************************* 
  2. *   日期:2013-2-19 
  3. *   作者:SJF0115 
  4. *   題號(hào): 天勤OJ 題目1130: 數(shù)制轉(zhuǎn)換 
  5. *   來(lái)源:http:///problem.php?id=1130 
  6. *   結(jié)果:AC 
  7. *   來(lái)源:2008年北京大學(xué)圖形實(shí)驗(yàn)室計(jì)算機(jī)研究生機(jī)試真題 
  8. *   總結(jié): 
  9. **********************************/  
  10. #include <string.h>  
  11. #include <stdio.h>  
  12.   
  13. char str[1001];  
  14. char ans[1001];  
  15. /* 
  16. * 轉(zhuǎn)換為十進(jìn)制 
  17. *  str是a進(jìn)制數(shù)字 
  18. */  
  19. long long int ToD(int a){  
  20.     int c,len,i;  
  21.     long long int sum,w;  
  22.     len = strlen(str);  
  23.     //轉(zhuǎn)換為十進(jìn)制的數(shù)字  
  24.     sum = 0;  
  25.     //權(quán)值  
  26.     w = 1;  
  27.     //從低位到高位遍歷每一個(gè)數(shù)字  
  28.      for(i = len-1;i >= 0;i--){  
  29.          //0 - 9  
  30.         if(str[i] >= '0' && str[i] <= '9'){  
  31.             c = str[i] - '0';  
  32.         }  
  33.         //A - F  
  34.         else if(str[i] >= 'A' && str[i] <= 'F'){  
  35.             c = str[i] - 'A' + 10;  
  36.         }  
  37.         //a - f  
  38.         else{  
  39.             c = str[i] - 'a' + 10;  
  40.         }  
  41.         //累加該位數(shù)字和該位數(shù)字的權(quán)值的積  
  42.         sum  +=  c * w;  
  43.         //進(jìn)制權(quán)值  
  44.         w *= a;  
  45.      }  
  46.     return sum;  
  47. }  
  48. /* 
  49. * 十進(jìn)制數(shù)字num轉(zhuǎn)換為b進(jìn)制數(shù)字,并用ans存儲(chǔ) 
  50. */  
  51. int ToAny(long long int num,int b){  
  52.     int index = 0,c;  
  53.     do{  
  54.         //計(jì)算該位數(shù)字  
  55.         c = num % b;  
  56.         //將數(shù)字轉(zhuǎn)換為字符  
  57.         ans[index++] = (c < 10) ? (c + '0') : (c - 10 + 'A') ;  
  58.         num /= b;  
  59.     }while(num);  
  60.     return index;  
  61. }  
  62. int main()  
  63. {  
  64.     long long int c;  
  65.     int len,a,b,i;  
  66.     while(scanf("%d %s %d",&a,str,&b) != EOF){  
  67.         //轉(zhuǎn)換為十進(jìn)制  
  68.         c = ToD(a);  
  69.         //轉(zhuǎn)換為b進(jìn)制  
  70.         len = ToAny(c,b);  
  71.         //輸出  
  72.         for(i = len-1;i >= 0;i--){  
  73.             printf("%c",ans[i]);  
  74.         }  
  75.         printf("\n");  
  76.     }  
  77.     return 0;  
  78. }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多