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

将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  
时间: 2024-11-05 12:11:15

1475 m进制转十进制的相关文章

- &gt;code vs 1475 m进制转十进制

1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示m进制的n化成十进制的数 样例输入 Sample Input 1010 2 样例输出 Sample Output 10 数据范围

m进制转十进制

1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示m进制的n化成十进制的数 样例输入 Sample Input 1010 2 样例输出 Sample Output 10 #include<

华为机试—“十七进制”转“十进制”

题目:"十七进制"转"十进制" 实现"十七进制"转"十进制"算法:输入一个十七进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF. #include<stdio.h> #include<string.h> void solve(char *s) { int len=strlen(s); int i=0; int ans=0; while(i&

c-八进制 转 十进制

概述 其实x进制转十进制的算法都差不多,不过如果是针对于字符形式,他们却有点不同.使用指针和数组的形式计算,又不同.这里演示将字符型的数组形式的八进制转成十进制: 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 5 #define MAX 10 6 7 //初始化数组为八进制. 8 void 9 init(char *octal) { 10 gets(octal); 11 } 12 13

C语言:其他进制转换为十进制(方法二)

#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他任意进制转换为十进制 int main() { int trans(char a[],int ); char arr[100]; int t; printf("请输入进制的类型:"); scanf("%d",&t); printf("请输入该进制的数:

(HDUStep 1.2.6)decimal system(任意进制转十进制)

题目: decimal system Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3622 Accepted Submission(s): 1419   Problem Description As we know , we always use the decimal system in our common life, even us

4.m进制转十进制

Strlen是字符串有多长就是多长,包括所有的元素和\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 乘权累加法 代

codevs1475 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 <bits/stdc++.h>//万能头

n进制转为十进制

主程序代码 - 1 #include <stdio.h> 2 #include <string.h> 3 main() 4 { 5 long t1; 6 int i, n, t, t3; 7 char a[100]; 8 printf("please input a number string:\n"); 9 gets(a); /*输入n进制数存到数组a中*/ 10 strupr(a); /*将a中的小写字母转换成大写字母*/ 11 t3 = strlen(a)