use std::io; fn main() { // まず、インプットの標準ライブラリを // 使うために、可変長の文字列を定義する。 let mut ab = String::new(); // インプットの標準ライブラリの // read_lineの引数はString。 // expectは失敗時に実行される。 io::stdin().read_line(&mut ab) .expect("入力エラー。"); // trimは前後の空白を取り除く関数だが // これが必要な理由はわからないが // trimを抜いた場合panicが起こり // エラーになる。 // splitで指定した文字で区切る(スペース) // mapで変数の型を変換する。 // 下記の場合xが一時的な変数として代入される // map内のparse関数によって変数に指定してある // Vecter型に変換する。 // collect関数によってイテレータを使い // Vectorとして数値を入れる let ab: Vec = ab.trim().split(" ") .map(|x| x.parse().unwrap()).collect(); // Rustでは整数の割り算は小数点が表示されない。 // aがab[0], bがab[1]として計算 // ab[1] / ab[0]だと、余りの分が歩数として // 計算されないため、失敗。 // そのため、割る数にab[0]をプラスすることで // 割ったときに1増えることになる。 // だが、割り切れる数だった場合数字が小数点を // オーバーしてしまいプラス2になるため、 // -1をしておく。 println!("{}", (ab[1] + ab[0] - 1) / ab[0]); }