結果

問題 No.2087 基数の変換
ユーザー phspls
提出日時 2022-10-01 10:56:42
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 727 bytes
コンパイル時間 13,679 ms
コンパイル使用メモリ 378,436 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-12-23 15:29:23
合計ジャッジ時間 12,687 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 51
権限があれば一括ダウンロードができます
コンパイルメッセージ
warning: variable `BASE` should have a snake case name
 --> src/main.rs:3:9
  |
3 |     let BASE: Vec<char> = "0123456789abcdefghijklmnopqrstuvwxyz".chars().collect();
  |         ^^^^ help: convert the identifier to snake case: `base`
  |
  = note: `#[warn(non_snake_case)]` on by default

ソースコード

diff #

fn basefrom10(n: usize, base: usize) -> String {
    let BASE: Vec<char> = "0123456789abcdefghijklmnopqrstuvwxyz".chars().collect();
    let mut ex = 1u32;
    while n > base.pow(ex) - 1 {
        ex+=1;
    }
    let mut rest = n;
    (0..ex).rev().map(|i| {
        let temp = base.pow(i);
        let ret = rest / temp;
        rest -= ret * temp;
        BASE[ret].to_string()
    })
    .collect::<Vec<_>>()
    .join("")
}

fn main() {
    let mut n = String::new();
    std::io::stdin().read_line(&mut n).ok();
    let n: usize = n.trim().parse().unwrap();
    let mut m = String::new();
    std::io::stdin().read_line(&mut m).ok();
    let m: usize = m.trim().parse().unwrap();

    println!("{}", basefrom10(m, n));
}
0