【发布时间】:2020-05-17 15:38:37
【问题描述】:
我是一个非常新的学生。我有一个我一直在尝试完成的编码练习,我认为我的解决方案是有效的,但我得到了意想不到的结果。我想知道我的逻辑是否有问题?
分配:编写一个名为 sumFirstAndLastDigit 的方法,其中一个 int 类型的参数称为 number。
方法需要找到参数的第一个和最后一个数字 传递给方法的数字,使用循环并返回总和 该号码的第一位和最后一位数字。
如果数字为负数,则该方法需要返回 -1 到 表示无效值。 示例输入/输出
sumFirstAndLastDigit(252); → 应该返回 4,第一个数字是 2,最后一个数字是 2,这给了我们 2+2,总和是 4。
sumFirstAndLastDigit(257); → 应该返回 9,第一个数字是 2,最后一个数字是 7,这给了我们 2+7,总和是 9。
sumFirstAndLastDigit(0); → 应该返回 0,第一个数字和最后一个数字是 0,因为我们只有 1 个数字,这给了我们 0+0 和 总和为 0。
sumFirstAndLastDigit(5); → 应该返回 10,第一个数字和最后一个数字是 5,因为我们只有 1 个数字,这给了我们 5+5 和 总和是 10。
sumFirstAndLastDigit(-10); → 应该返回 -1,因为参数是负数并且需要是正数。
注意:方法 sumFirstAndLastDigit 需要定义为 public 就像我们迄今为止在课程中所做的那样静态。
注意:不要在解决方案代码中添加 main 方法。
这是我想出的(我只包括了方法本身):
public static int sumFirstAndLastDigit (int number) {
if (number < 0) {
return -1;
} else if (number <= 9) {
number += number;
return number;
}
int num = number;
int sumFirstAndLast = 0;
while (num > 0) {
int useDigit = (num % 10);
if ((num == number) || ((double)num < 1)) {
sumFirstAndLast += useDigit;
}
num = num / 10;
} return sumFirstAndLast;
}
我认为问题可能是我的 while 循环中的 if 语句 - 但我不确定。我希望它检查 num 是否等于传递给该方法的原始数字,并在 num 通过 while 循环运行几次后检查它是否小于 1(这就是为什么我将它转换为双)
当我写出每个循环应该如何运行时,它似乎可以工作,但我得到的输出不正确。
非常感谢任何帮助、批评、经验法则等。提前致谢。
【问题讨论】:
标签: java methods while-loop logic