AtCoder Beginner Contest 251 A

https://atcoder.jp/contests/abc251/tasks/abc251_a

Pythonではこんな感じです。

def F(S):
    return S * (6 / len(S))

Rustでは掛け算みたいなのはないようで、ここでは単純に足し算のような書き方をします。nが大きければ分割統治法が必要ですが。

fn times(s: &String, n: usize) -> String {
    let mut s1 = s.clone();
    for _ in 1..n {
        s1 += s;
    }
    return s1;
}

割り算の部分は、

    let S: String = read();
    let num = 6usize / S.len();

6u32とかだと型が合わなくてエラーです。

#![allow(non_snake_case)]

fn read<T: std::str::FromStr>() -> T {
    let mut line = String::new();
    std::io::stdin().read_line(&mut line).ok();
    line.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>().split_whitespace()
            .map(|e| e.parse().ok().unwrap()).collect()
}

fn times(s: &String, n: usize) -> String {
    let mut s1 = s.clone();
    for _ in 1..n {
        s1 += s;
    }
    return s1;
}

fn main() {
    let S: String = read();
    let num = 6usize / S.len();
    println!("{}", times(&S, num));
}