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 }

 

 

 

 

 

 

 

posted @ 2018-06-06 15:00  孟东行#  阅读(151)  评论(0编辑  收藏  举报