1 solutions
-
2
先了解16进制转10进制的方法: 如有: "5AE"的16进制数字,A=10,E=14 转换方法: 5 A E 16^2 16^1 16^0 * * * 5 10 14 =16^2*5 + 16^1*10 + 16^0*14 =1280+160+14 =1454 所以"5AE"的16进制数字="1454"的10进制数字
所以题目这样做: 但这次A=1,而不是1=1,而且数据要用long long
#include<iostream> #include<string> using namespace std; long long pow(int x,int y)//不要用cmath的pow() ! 会超时 要自己搞一个 { long long s=1; for(long long i=0;i<y;i++)//指数次数 { s*=x; } return s; } int main() { string a; cin>>a; long long s=a.length(),t=0; long long b[s]; for(long long i=0;i<s;i++) { b[i]=a[i]; b[i]-=64;//先将字母转化为数字先,如A换为1 t+=b[i]*pow(26,s-i-1);//模拟26进制的方法 } cout<<t;//输出 return 0;//完结散花! }
- 1
Information
- ID
- 930
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 131
- Accepted
- 14
- Uploaded By