プログラミングのお題スレ Part22 (859レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
668: デフォルトの名無しさん [sage] 2025/03/02(日) 01:21:29.93 ID:xdmIFouH(1) AAS
>> 664 Rust
fn f(n: u64) -> u64 {
// f(n) = 1⊕2⊕3⊕...⊕n とすると (2k)⊕(2k+1)=1 であるから 1⊕1=0 より
// f(4k+1) = (4k+1)⊕(4k)⊕(4k-1)⊕(4k-2)⊕f(4k-3) = f(4(k-1)+1) = ... = f(1) = 1
// f(4k+3) = (4k+3)⊕(4k+2)⊕f(4k+1) = 0
// f(4k) = (4k)⊕f(4k-1) = 4k
// f(4k+2) = (4k+2)⊕f(4k+1) = (4k+2)⊕1 = 4k+3
match n % 4 {
0 => n,
1 => 1,
2 => n + 1,
3 => 0,
_ => unreachable!(),
}
}
fn main() {
for n in [123456789, 12345678901234567890] {
println!("f({n}) = {fn}", fn = f(n));
}
}
出力
f(123456789) = 1
f(12345678901234567890) = 12345678901234567891
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s