ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • rust 01
    2021/개발 2021. 6. 8. 21:15
    
    // main.rs
    // https://rinthel.github.io/rust-lang-book-ko/ch03-05-control-flow.html
    
    fn main() {
        // Q1 섭씨 화씨 계산
        let far = cel2far(32);
        let cel = far2cel(far);
    
        println!("far: {}, cel: {}", far, cel);
    
        // Q2 n 피보나치
        for i in 0..11 {
            let f = fibo(i);
            println!("fibo[{}] : {}", i, f);
        }
    }
    
    fn cel2far(cel: i32) -> i32 {
        cel * 9 / 5 + 32
    }
    
    fn far2cel(far: i32) -> i32 {
        (far - 32) * 5 / 9
    }
    
    fn fibo(n: i32) -> i32 {
        if n < 2 { return n; } else { fibo(n - 2) + fibo(n - 1) }
    }
    
    // 👏
    fn fibonacci_recursive(n: i32) -> u64 {
        if n < 0 {
            panic!("{} is negative!", n);
        }
        match n {
            0     => panic!("zero is not a right argument to fibonacci_recursive()!"),
            1 | 2 => 1,
            3     => 2,
            _     => fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
        }
    }

    오랜만에 시간이 남아 다른 언어를 접해봤는데 재미가 있다.

    '2021 > 개발' 카테고리의 다른 글

    rust 04  (0) 2021.06.15
    rust 03  (0) 2021.06.11
    rust 02  (0) 2021.06.09
    0002 - Layout System  (0) 2021.01.18
    0001 - Props / State  (0) 2021.01.10
Designed by Tistory.