华为研发工程师编程题----进制转换(pow函数,string.find())
2016-07-09 20:04
344 查看
[编程题] 进制转换
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子:
输出例子:
第二次做:
#include <string>
#include <iostream>
#include <algorithm>
using namespace::std ;
int main() {
static string index = "0123456789ABCDEF" ;
string input ;
while ( cin >> input ) {
input = input.substr( 2 ) ;
double base = input.size() - 1 ;
double result = 0.0 ;
for ( int i = 0; i < input.size(); ++ i ) {
int tmp = index.find( input[i] ) ;
result += tmp * pow( (double)16, base ) ;
-- base ;
}
cout << result << endl ;
}
return 0 ;
}
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子:
0xA
输出例子:
10
#include <iostream> #include <string> #include <math.h> using namespace::std ; int main() { string input ; string index = "0123456789ABCDEF" ; while ( cin >> input ) { input = input.substr( 2 ) ; double base = input.size() - 1 ; double sum = 0.0 ; for ( int i = 0; i < input.size(); ++ i ) { int tmp = index.find( input[i] ) ; sum += tmp * pow( (double)16, base ) ; -- base ; } cout << sum << endl ; } return 0 ; }
第二次做:
#include <string>
#include <iostream>
#include <algorithm>
using namespace::std ;
int main() {
static string index = "0123456789ABCDEF" ;
string input ;
while ( cin >> input ) {
input = input.substr( 2 ) ;
double base = input.size() - 1 ;
double result = 0.0 ;
for ( int i = 0; i < input.size(); ++ i ) {
int tmp = index.find( input[i] ) ;
result += tmp * pow( (double)16, base ) ;
-- base ;
}
cout << result << endl ;
}
return 0 ;
}
相关文章推荐
- leetcode: Evaluate Reverse Polish Notation
- Python学习笔记之缩进
- 如何生成UTF-16汉字编码表
- eclipse调试jdk源码
- C++,C,java面试例题
- eclipse一些实用小技巧
- java多态及其与c++的差异
- 好用的Python IDLE Sublime Text 3推荐
- MATLAB学习笔记
- jdk1.6下载
- 华为研发工程师编程题----明明的随机数(快排)
- 深入理解JAVA I/O系列一:File
- JAVA定时器开发
- Java之真实项目中的章节排序实例
- 关于c++primer不能用字符串字面值构建vector对象
- poj 2757 : 最长上升子序列(JAVA)
- JAVA Calendar详解
- 使用lxml的xpath读取网页中的表格并转化为pandas的DataFrame
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- PHP session 防止重复登录