プログラミングのお題スレ Part22 (863レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
696: デフォルトの名無しさん [sage] 03/20(木)08:21 ID:6IEA4H0O(1)
>>693 Rust
fn f(a: i64) -> String {
 let b = (a as u64).next_power_of_two() as i64;
 let b = if 3 * a > 2 * b { b } else { b >> 1 };
 let (c, d) = (b - a, a * b);
 let shift = c.trailing_zeros().min(d.trailing_zeros());
 let (c, d) = (c >> shift, d >> shift);
 if a == b {
  format!("1/{a}=1/{b}")
 } else {
  format!("1/{a}=1/{b}{c:+}/{d}")
 }
}

fn main() {
 assert_eq!("1/3=1/4+1/12", f(3));
 assert_eq!("1/7=1/8+1/56", f(7));
 assert_eq!("1/9=1/8-1/72", f(9));
 assert_eq!("1/13=1/16+3/208", f(13));
 assert_eq!("1/60=1/64+1/960", f(60));
 assert_eq!("1/64=1/64", f(64));
 assert_eq!("1/6718464=1/8388608+1631/55037657088", f(6718464));
 assert_eq!("1/123456789=1/134217728+10760939/16570089725755392", f(123456789));
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s