You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:45:35