https://atcoder.jp/contests/abc259/tasks/abc259_a
年齢を入れたら身長が出る構造体の関数を作ります。
0歳のときの身長を構造体の要素にしたいので、静的関数で作るようにします。静的関数を書くには、selfを引数に書かないようにするだけのようです。
// Growth Record #![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() } struct Person { init_height: i32, delta: i32, stop_year: i32 } impl Person { fn height(&self, T: &i32) -> i32 { if T <= &self.stop_year { self.init_height + &self.delta * T } else { self.init_height + self.delta * self.stop_year } } fn create(X: i32, D: i32, T: i32) -> Person { Person { init_height: T - D * X, delta: D, stop_year: X } } } fn main() { let v = read_vec(); let N: i32 = v[0]; let M = v[1]; let X = v[2]; let T = v[3]; let D = v[4]; let chokudai = Person::create(X, D, T); println!("{}", chokudai.height(&M)) }