Rust实现Luhn算法
pub fn luhn(cc_number: &str) -> bool { //scan number from right to left, the digit *2 which in every second position if cc_number.is_empty() { return false; } let chats = cc_number.chars(); let mut sum = 0; let mut digits_seen = 0; for (index, ch) in chats.rev().filter(|&ch| ch != ' ').enumerate() { let mut num_ch = ch.to_digit(10); match num_ch { Some(d) => { if (index + 1) % 2 == 0 { let n = d * 2; if n < 10 { sum += n; } else { sum += n % 10 + n / 10; } } else { sum += d; } digits_seen += 1; } None => return false } } //return false if digits count less than 2 if digits_seen < 2 { return false; } return sum % 10 == 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
2021-12-25 474. Ones and Zeroes