我想用
Java编写一个程序,给定一个数组,找到数组中所有数字的总和 – 有一个例外!由于数字13非常不吉利,我建议我们将完全排除数字13,以及直接在13之后的数字(如果存在的话)从总和中排除.
该程序,我将称之为sum13,应该从以下输入产生以下结果(这些只是几个例子):
sum13([1,2,2,1])= 6这个是正常的;没有13在这里.
sum13([5,13,2])= 5 13和13之后的数字被排除在外.
sum13([13,13])= 0数组只包含13个,因此它们都不包括在内.
sum13([1,2,13,2,1,13])= 4一个稍长的预期输出示例.
这是我为sum13提出的代码:
public int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
// we start by adding all the non-13s to the sum
if (nums[i] != 13) sum += nums[i];
}
// now we go back and remove all the non-13s directly after a 13
for (int j = 0; j < nums.length; j++) {
// the outermost loop checks if the numbers are a 13
if (nums[j] == 13 && j < nums.length - 1) {
for (int k = j + 1; k < nums.length; k++) {
// this loop checks that the number after the 13 is not a 13
if (nums[k] != 13) {
sum -= nums[k];
break;
}
}
}
}
return sum;
}
上面的程序有效,虽然看起来确实很混乱!
有没有更好的方法来编写这样一个不包含多个循环和嵌套ifs的程序?
如果觉得《java 数组中数字和_java – 查找数组中的数字总和 – 不包括数字13和它后面的数字...》对你有帮助,请点赞、收藏,并留下你的观点哦!