プログラミングのお題スレ 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