假设我有一个变量a = 12345,我想把a分割成[1,2,3,4,5],然后像[1+2+3+4+5]那样把它们相加,最后我想得到a = 15的结果,我怎么能做到这一点?
你所要做的就是依次递归地把每个数字加起来。
void main() {
int a = 12345;
int sum = 0;
while(a>0){
sum = sum + (a%10);
a = (a/10).floor();
}
print(sum);
//if u want to store in a
a = sum;
}
有不同的方法可以实现相同的功能,其中一种方法如下:
void main() {
int num = 12345;
int sum = 0;
String numAsString = num.toString();
for (int i = 0; i < numAsString.length; i++) {
sum += int.parse(numAsString[i]);
}
print(sum); // 15
}
您可以使用split()作为
void main(){
var i=34567;
var iStr=i.toString().split('');
var exp= iStr.join('+');
var sum=iStr.fold(0,(a,b)=>int.parse(a.toString())+int.parse(b));
print(exp);
print(sum);
}
输出:3 + 4 + 5 + 6 + 725如果只需要整数的和,则
void main() {
var i = 34567;
var iStr = i.toString().split('');
var sum = iStr.fold(0, (a, b) => int.parse(a.toString()) + int.parse(b));
print(sum);
}
我将首先将整数转换为字符串来处理它。然后将每个字符映射为int型,最后简单地将int型迭代器归约为sum。
int num = 12345;
print(num
.toString()
.split('')
.map(
(c) =>int.parse(c)
).reduce((a,b) => a+b));