/*
出自CODEVS
m进制转十进制
题目描述 Description
将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100
输入描述 Input Description
共一行 n和m
输出描述 Output Description
共一个数 表示m进制的n化成十进制的数
样例输入 Sample Input
1010 2
样例输出 Sample Output
10
数据范围及提示 Data Size & Hint
乘权累加法
*/
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
int s,m,temp;
string n;
cin>>n>>m;
s = 0;
/*
ASCII码中, 0~9为48~57 A~Z 为65~90
*/
for(int i=n.length()-1; i>=0; i--)
{
temp = n.length()-(i+1);
if(n[i]>=48 && n[i]<=57)
{
s += (n[i]-'0') * pow(m,temp);
}
else
{
s += ((n[i]-17-'0')+10) * pow(m,temp);
}
}
cout<<s<<endl;
return 0;
}
平日小问题(6):m进制转十进制
最新推荐文章于 2018-07-27 16:04:09 发布