レス書き込み
スレへ戻る
写
レス栞
レス消
プログラミングのお題スレ Part22
PC,スマホ,PHSは
ULA
べっかんこ
公式(スマホ)
公式(PC)
で書き込んでください。
名前
メール
引用切替:
レスアンカーのみ
>>697 > >>680 Rust > fn odai_680() -> Vec<i128> { > let mut answer = vec![0]; > let n_max = (0..).find(|&n| pow16(n + 1) > pow10(36)).unwrap(); > for s in (0..).take_while(|&s| pow16(n_max) >= pow10(n_max + s + 1)) { > let c = (0..=n_max).map(|i| pow16(i) - pow10(i + s)).collect::<Vec<_>>(); > let rmax = c.iter().scan(0, |s, &c| { *s += if c > 0 { c * 9 } else { 0 }; Some(*s) }).collect::<Vec<_>>(); > let rmin = c.iter().scan(0, |s, &c| { *s += if c < 0 { c * 9 } else { 0 }; Some(*s) }).collect::<Vec<_>>(); > let (mut i, mut n, mut d, mut ct) = (0, 1, vec![0; c.len()], vec![0; c.len() + 1]); > loop { > d[i] += 1; > if d[i] < 10 { > let m = pow10(n as u32 + s); ct[i] = c[i] * d[i] + ct[i+1]; > if i == 0 { > if ct[0] >= 0 && ct[0] % m < pow10(s) { answer.push(d.iter().take(n).rev().fold(0, |sum, &d| sum * 16 + d)) } > } else { > let (max, min) = (ct[i] + rmax[i-1], ct[i] + rmin[i-1]); > if max >= 0 && (max - min > m || pow10(s) > min % m || min % m > max % m) { i -= 1; } > } > } else { d[i] = -1; i += 1; if i == n { if n == d.len() { break; } n += 1; } } > } > } > answer.sort(); answer > }
ローカルルール
SETTING.TXT
他の携帯ブラウザのレス書き込みフォームはこちら。
書き込み設定
で書き込みサイトの設定ができます。
・
ULA
・
べっかんこ(身代わりの術)
・
べっかんこ(通常)
・
公式(スマホ)
・
公式(PC)[PC,スマホ,PHS可]
書き込み設定(板別)
で板別の名前とメールを設定できます。
メモ帳
(0/65535文字)
上
下
板
覧
索
設
栞
歴
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s