码迷,mamicode.com
首页 > 其他好文 > 详细

1475 m进制转十进制

时间:2016-07-12 21:12:16      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 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进制的题目还要简单,因为最后转化成的就是我们最常用的十进制数。

将m进制数的每一位分别运算相加即可。如1010转换为十进制为1*pow(2,4-0-1)+0*pow(2,4-1-1)+1*pow(2,4-2-1)+0*pow(2,4-3-1)=10。

附AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 
 8 int main(){
 9     int n,sum=0;
10     string m;
11     cin>>m>>n;
12     for(int i=0;i<m.size();i++){//化为十进制,每一位分别运算相加 
13         if(m[i]==0)
14         sum+=0*pow(n,m.size()-i-1);
15         if(m[i]==1)
16         sum+=1*pow(n,m.size()-i-1);
17         if(m[i]==2)
18         sum+=2*pow(n,m.size()-i-1);
19         if(m[i]==3)
20         sum+=3*pow(n,m.size()-i-1);
21         if(m[i]==4)
22         sum+=4*pow(n,m.size()-i-1);
23         if(m[i]==5)
24         sum+=5*pow(n,m.size()-i-1);
25         if(m[i]==6)
26         sum+=6*pow(n,m.size()-i-1);
27         if(m[i]==7)
28         sum+=7*pow(n,m.size()-i-1);
29         if(m[i]==8)
30         sum+=8*pow(n,m.size()-i-1);
31         if(m[i]==9)
32         sum+=9*pow(n,m.size()-i-1);
33         if(m[i]==A)
34         sum+=10*pow(n,m.size()-i-1);
35         if(m[i]==B)
36         sum+=11*pow(n,m.size()-i-1);
37         if(m[i]==C)
38         sum+=12*pow(n,m.size()-i-1);
39         if(m[i]==D)
40         sum+=13*pow(n,m.size()-i-1);
41         if(m[i]==E)
42         sum+=14*pow(n,m.size()-i-1);
43         if(m[i]==F)
44         sum+=15*pow(n,m.size()-i-1);
45     }
46     cout<<sum<<endl;
47     return 0;
48 }
49  

 

1475 m进制转十进制

标签:

原文地址:http://www.cnblogs.com/Kiven5197/p/5664815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!