(ブルーブリッジカップ)16進数変換10進数(16進数過大を解決)


問題は、キーボードから8ビットを超えない正の16進数文字列を入力し、正の10進数に変換して出力することです.注:16進数の10~15は、それぞれ大文字のアルファベットA、B、C、D、E、Fで表されます.サンプル入力FFFFサンプル出力65535
最後の結果を整数タイプで保存すると、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);
}