https://www.acmicpc.net/problem/2748
Rust로 PS하기 두번째 문제이다.
러스트 깃북을 보다가 피보나치 수 구하기를 만들어 보라길래, 한번 간단하게 짜 보았다.
Rust는 역시 input 받는 것부터 난관이다.
책 예제대로 String으로 받은 뒤 int로 parse해서 사용했다.
use std::io;
fn fib(n : i32) {
let mut a: i64 = 1;
let mut b: i64 = 1;
let mut c: i64 = 0;
for _ in 2..n {
c = a + b;
a = b;
b = c;
}
println!("{}", c);
}
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input)
.expect("read line error");
let n : i32 = input.trim().parse()
.expect("Parse error");
match n {
1 => println!("1"),
2 => println!("1"),
_ => fib(n),
}
}
코드는 간단했다. _라는 값이 예약어라는 것도 좀 신기했다. (Anything을 뜻하는 듯)
그리고 Match 구문이 switch 구문보다 더 강력하다고 한다.
그리고 unnecessary value, syntax에 대하여 강력한 warning으로 내 정신을 쏙 빼놓는다.
책만 보면 재미가 떨어지니 이렇게 간혹 코딩을 하면서 진행을 해야겠다.
'개발 & CS 지식 > Rust' 카테고리의 다른 글
Rust로 웹 서버를 만들어 보자 (0) | 2020.07.28 |
---|---|
[Rust로 PS하기] 백준1620번 나는야 포켓몬 마스터 이다솜 풀이 (0) | 2020.04.27 |