所以,基本上,问题要求我找到数组中数字的总和.除了数字'13'是非常不吉利的,因此不计算'13'和'13'之后的数字.
这就是我做的:
public int sum13(int[] nums) {
int d = 0;
int sum = 0;
for (int i=0;i<nums.length;i++){
if(nums[i] == 13){
d = i;
break;
}
else{
d = nums.length;
}
}
for(int i=0;i<d;i++){
sum = sum + nums[i];
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
即使我通过了大部分测试,我仍然无法理解如何从总和中排除13旁边的数字.
例如,sum13({1,2,2,1,13})→6 PASSES!sum13({13,1,13})→0通过!但是,sum13({13,1,2,13,2,1,13})→3返回0,因为它在13的第一个实例处停止.
你为什么用两个循环?如果数字是13,只是不要将它或下一个数字添加到总和中,如下所示:
public int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 13) {
i++;
} else {
sum = sum + nums[i];
}
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1697 次 |
| 最近记录: |