プログラミングのお題スレ Part22 (859レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
673: デフォルトの名無しさん [sage] 2025/03/14(金) 02:30:00.58 ID:wjeVVi0w >>670 Rust 逆文字列を生成しない&整数ジェネリック版 use num::{BigInt, CheckedAdd, CheckedMul, CheckedSub, FromPrimitive}; fn chars_to_integer<X>(input: impl Iterator<Item = char>) -> Option<X> where X: FromPrimitive + CheckedMul + CheckedAdd, { let (zero, ten) = (X::from_u32(0).unwrap(), X::from_u32(10).unwrap()); input .map(|c| X::from_u32(c.to_digit(10)?)) .try_fold(zero, |acc, x| acc.checked_mul(&ten)?.checked_add(&x?)) } fn odai<X>(input: &str) -> Option<X> where X: FromPrimitive + CheckedMul + CheckedAdd + CheckedSub, { let x = chars_to_integer::<X>(input.chars())?; let y = chars_to_integer::<X>(input.chars().rev())?; x.checked_sub(&y) } fn main() { assert_eq!(odai::<i64>("12345"), Some(-41976)); assert_eq!(odai::<BigInt>("4922235242952026704037113243122008064"), Some("314233029528909399960910650696685770".parse::<BigInt>().unwrap())); } http://mevius.5ch.net/test/read.cgi/tech/1691038333/673
676: デフォルトの名無しさん [sage] 2025/03/15(土) 19:04:58.28 ID:GCbQqql0 >>673 これらのwhere~は何という名称ですか? > where X: FromPrimitive + CheckedMul + CheckedAdd, > where X: FromPrimitive + CheckedMul + CheckedAdd + CheckedSub, http://mevius.5ch.net/test/read.cgi/tech/1691038333/676
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.047s