
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)
B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.
첫째 줄에 B진법 수 N을 10진법으로 출력한다.
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let input: Vec<&str> = input.split_whitespace().collect();
let n = input[0];
let b: u32 = input[1].trim().parse().unwrap();
let output: u32 = u32::from_str_radix(n, b).unwrap();
println!("{}", output);
}
fn from_str_radix(src: &str, radix: u32) -> Result<u32, ParseIntError>
https://doc.rust-lang.org/std/primitive.u32.html#method.from_str_radix
input.chars().rev().enumerate()는 문자열을 역순으로 순회하여 각 문자의 인덱스와 함께 가져옵니다. 이 방법을 활용하여 직접 만들어줄 수도 있습니다.for (i, c) in input.chars().rev().enumerate() {
}