Flutter实现整数各位数字求和算法的方法
Flutter实现数字各位求和算法
下面提供两种实用的实现方式,涵盖正数和负数的处理场景:
方法一:字符串转换遍历法
将数字转为字符串后,逐个遍历字符并转换为数字累加,逻辑直观易懂:
int sumDigits(int x) { // 处理负数,取绝对值后计算 final numStr = x.abs().toString(); int sum = 0; for (var char in numStr.split('')) { sum += int.parse(char); } return sum; }
调用示例:
void main() { print(sumDigits(1992)); // 输出 21 print(sumDigits(-123)); // 输出 6 }
方法二:数学取模运算
通过取模和整除操作逐位提取数字,避免字符串转换,性能更优:
int sumDigits(int x) { int num = x.abs(); int sum = 0; while (num > 0) { sum += num % 10; num = num ~/ 10; // 整数除法,舍去小数部分 } return sum; }
调用示例:
void main() { print(sumDigits(1992)); // 输出 21 print(sumDigits(-456)); // 输出 15 }
如果需要处理输入的字符串类型数字(比如从TextField获取的输入),可以先转为int再调用上述函数:
// 假设从输入框获取的字符串 String inputStr = "1992"; int? inputNum = int.tryParse(inputStr); if (inputNum != null) { int result = sumDigits(inputNum); print(result); // 输出21 } else { print("输入不是有效数字"); }
内容的提问来源于stack exchange,提问作者Mehmet Ali Kara
相关产品推荐
相关产品推荐

