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

时间:2021-06-03 18:50:47

题目:“十七进制”转“十进制”

实现“十七进制”转“十进制”算法:输入一个十七进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF。


#include <iostream>
using namespace std;  
      
void convert(char* p)  
{  
	int len=strlen(p);  
    int sum=0;  
    int num=0;  
    for(int i=0;i<len;i++)  
    {  
		if(p[i]>='0'&&p[i]<='9')  
            num=p[i]-'0';  
        else  
            num=p[i]-55;
	
        sum=sum*17+num;
    }  
    cout<<sum<<endl;  
}  
      
      
int main()  
{  
	char p[100];  
    //gets(p); 

	while (cin>>p){     
        convert(p);    
    }  
	cout<<endl;
    return 0;  
}  

测试结果,可能想的不周全,欢迎查漏补缺:

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