結果

問題 No.64 XORフィボナッチ数列
ユーザー dnikkdnikk
提出日時 2018-07-18 15:33:00
言語 Rust
(1.77.0 + proconio)
結果
TLE  
実行時間 -
コード長 842 bytes
コンパイル時間 17,746 ms
コンパイル使用メモリ 401,636 KB
実行使用メモリ 13,888 KB
最終ジャッジ日時 2024-05-08 11:18:30
合計ジャッジ時間 21,950 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 1 ms
5,248 KB
testcase_02 AC 1 ms
5,248 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 1 ms
5,376 KB
testcase_08 AC 1 ms
5,376 KB
testcase_09 TLE -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).ok();

    let input = input
        .split_whitespace()
        .map(|x| x.parse::<u64>().unwrap())
        .collect::<Vec<_>>();
    let (f0, f1, n) = (input[0], input[1], input[2]);

    let fk = Fk { f0: f0, f1: f1 };
    println!("{}", fk.fk(n));
}

struct Fk {
    f0: u64,
    f1: u64,
}

impl Fk {
    fn fk(&self, n: u64) -> u64 {
        match n {
            0 => self.f0,
            1 => self.f1,
            _ => {
                let mut f_k1 = self.f0;
                let mut f_k2 = self.f1;
                let mut tmp = 0;
                for _ in 2..n + 1 {
                    tmp = f_k1 ^ f_k2;
                    f_k1 = f_k2;
                    f_k2 = tmp;
                }
                tmp
            }
        }
    }
}
0