gpt4 book ai didi

algorithm - 为什么不通过代码战中问题平衡数的所有测试用例?

转载 作者:行者123 更新时间:2023-12-03 04:27:05 25 4
gpt4 key购买 nike

目前,我正在平衡码的代码战中挑战,我用dart编写了代码,它成功完成了100个测试用例,但是对于较长的数字,它不能正常工作...所以,我认为对于此较长的数字,它需要一些条件:

String balancedNum(numb) {
// your code here
var numb1 = numb.toString();
List a = numb1.split("");

var left_sum = 0;
var right_sum = 0;

for (var i = 0; i <= a.length / 2; i++) {
left_sum += int.parse(a[i]);
}

List<String> b = a.reversed.toList();

//print(b);

for (var i = 0; i < b.length / 2; i++) {
right_sum += int.parse(b[i]);
}

//print(right_sum);

if (left_sum == right_sum) {
return 'Balanced';
} else {
return 'Not Balanced';
}
}

链接到挑战: https://www.codewars.com/kata/balanced-number-special-numbers-series-number-1/train/dart

enter image description here

最佳答案

由于简单的逻辑错误,编译器认为该代码是错误的答案。

这是因为未正确计算列表的长度

请查看下面的更正代码,该代码通过了平台上的所有110测试:

String balancedNum(numb) {
// your code here
var numb1 = numb.toString();
List a = numb1.split("");

var left_sum = 0;
var right_sum = 0;

double d = ((a.length-1) / 2);
int len = d.floor();

print(len);

for (var i = 0; i < len; i++) {
left_sum += int.parse(a[i]);
}

List<String> b = a.reversed.toList();

print(b);

for (var i = 0; i < len; i++) {
right_sum += int.parse(b[i]);
}

print(left_sum);
print(right_sum);

if (left_sum == right_sum) {
return 'Balanced';
} else {
return 'Not Balanced';
}
}

关于algorithm - 为什么不通过代码战中问题平衡数的所有测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59018691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com