CODE[VS] 1475 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
乘权累加法
也是,记住吧,
上个是十进制转m进制,这个刚好反过来。
二者结合,,,就无敌了呢。
ac代码,:
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 #include<cstring> 6 using namespace std; 7 8 char c[102]; 9 int m,a[102],k,sum,i,j; 10 11 int main() 12 { 13 cin>>c; 14 scanf("%d",&m); 15 for(i=0;c[i]!='\0';++i) 16 k=i; 17 while(i) 18 { 19 j=i-1; 20 if(c[j]>='0'&&c[j]<='9') 21 a[j]=(int)c[j]-48; 22 else if(c[j]>='A'&&c[j]<='G') 23 a[j]=(int)c[j]-55; 24 i--; 25 } 26 for(i=0;k>=0;--k,++i) 27 sum+=a[k]*pow(m,i); 28 printf("%d",sum); 29 return 0; 30 }