题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
自己整一个:
use std::io::{self,*};
use std::str::FromStr;
fn main(){
let stdin = io::stdin();
for line in stdin.lock().lines(){
let l = line.unwrap();
let v = Vec::from(l.as_str().to_uppercase());
let mut sum = 0i32;
let mut weight = 0u32;
for i in (0..v.len()).rev(){
let y = char::from(v[i]);
if 'X' == y {
break;
}
let bit :i32 = match y {
'0' => 0,
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
'6' => 6,
'7' => 7,
'8' => 8,
'9' => 9,
'A' => 10,
'B' => 11,
'C' => 12,
'D' => 13,
'E' => 14,
'F' => 15,
_ => -1,
};
sum += 16_i32.pow(weight) * bit;
weight += 1;
}
println!("{}",sum);
}
}
用 Rust 刷华为机试HJ 文章被收录于专栏
用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂