(ブルーブリッジカップ)16進数変換10進数(16進数過大を解決)
705 ワード
問題は、キーボードから8ビットを超えない正の16進数文字列を入力し、正の10進数に変換して出力することです.注:16進数の10~15は、それぞれ大文字のアルファベットA、B、C、D、E、Fで表されます.サンプル入力FFFFサンプル出力65535
最後の結果を整数タイプで保存すると、16進数が大きい場合にint範囲を超える場合があるため、結果mをdoubleタイプと定義し、出力時に小数点以下の内容を出力しないで出力すればよい
最後の結果を整数タイプで保存すると、16進数が大きい場合にint範囲を超える場合があるため、結果mをdoubleタイプと定義し、出力時に小数点以下の内容を出力しないで出力すればよい
#include
#include
#include
#define maxn 10
double m=0; //
int main(){
int t=0;
char sixteen[maxn]; //
gets(sixteen);
strrev(sixteen); //
for(int i=0;sixteen[i]!='\0';i++){
if(sixteen[i]>='A'&&sixteen[i]<='F'){
t=sixteen[i]-'A'+10;
}
else{
t=sixteen[i]-'0';
}
m=m+t*pow(16,i);
}
printf("%.0lf",m);
}