输入任意进制的整数,要求转换成十进制数并输出。
输入格式:
输入两个数,a表示任意进制的整数,N表示进制。
输出格式:
输出a的十进制数。
限制:
空间限制:128MByte
时间限制:1秒
样例:
输入:
100110 2
输出:
38
提示:
注意,最多16进制数,如果某位是10,用字符A表示,11用B表示....
例如,十六进制数AB,表示十进制数171
因为最多16进制,所以就可以按照 转进制原理 直接肝
#include <iostream>
#include <cmath>
using namespace std;
int math(int a, int b)
{
int num = 1;
for(int i = 1; i <= b; i++)
{
num *= a;
}
return num;
}
string c;
int a;
int main()
{
cin >> c >> a;
int len = c.length();
int ans = 0;
if(a == 2)
{
int sum = math(2, len - 1);
for(int i = 0; i < len; i++)
{
// cout << (c[i] - '0') << " " << ans << " " << sum << endl;
ans += (c[i] - '0') * sum;
sum /= 2;
}
}
else if(a == 3)
{
int sum = math(3,