[過去ログ] Qiita 4 - キータぞ、来たぞ、キータだぞー (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
316(1): デフォルトの名無しさん [sage] 2024/03/03(日) 22:44:59.76 ID:korTDzLq(5/5) AAS
>>315315(12): デフォルトの名無しさん [sage] 2024/03/03(日) 21:47:18.39 ID:B4rwo5Er(1) AAS
閏年の仕様が変わったら判定関数だけ置き換えればいいのだから
判定関数の中身なんて何でもいいのよ
割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
107374182500年は平年? 閏年?
322(1): デフォルトの名無しさん [sage] 2024/03/04(月) 09:41:48.67 ID:ybOgKOgD(1) AAS
>>316 >>321321(1): デフォルトの名無しさん [sage] 2024/03/04(月) 09:02:08.19 ID:4WAZxDSM(1) AAS
>>315
Rustって使ったことないんだけど動確してみた。書き方合ってる?
fn is_leap_year(year: u64) -> bool {
let q100 = (year * 42949673) >> 32;
((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
fn main()
{
let year = 107374182500;
println!("is_leap_year({}) -> {}", year, is_leap_year(year));
}
実行結果:
is_leap_year(107374182500) -> true
外部リンク:wandbox.org
1000億年後の閏年とか低能丸出し
地球も存在しないぞ
それ以前に60万年後には誤差が半年となり夏冬逆転し無意味となる
それ以前にルールが変わるため大きな数に対応する意味がない
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s