问题描述
我正在编写一个用作计算器的 Java 类。
我想编写一个程序,当用户选择@并输入值时,返回num1到num2的总和。
例如,如果您输入 1 和 100,则代码应返回 5050 作为结果。
我应该使用循环吗? 我最近开始学习java语言。所以我对语法没有信心。
感谢您的帮助。
以下是计算器代码片段。
public int calc(int num1,int num2,String op) {
int result = 0;
if(op.equals("+")) {
result = num1 + num2;
}
else if(op.equals("@")) {
//I need help with this part.
}
return result;
}
解决方法
else if(op.equals("@")) {
if (num1 < num2) {
while (num1 <= num2) {
result += num1++;
}
} else if (num1 > num2) {
System.out.println("ERROR: num1 must be less than num2");
} else {
reusult = num1;
}
}
,
我应该使用循环吗?
当然。如果你愿意。
请注意,这里有一个数学公式。考虑对从 1 到 10 的数字求和。
你可以去:read/send timeouts
。换句话说,1+2+3+4+5+6+7+8+9+10
。
或者,您意识到您也可以重写:将最高和最低数字配对:int sum = 0; for (int i = lowest; i <= highest; i++) sum += i;
。然后,意识到您最终总是得到一系列总和相同的对:即 1+10 + 2+9 + 3+8 + 4+7 + 5+6
。并且会有“长度/2”这样的对。换句话说,对于“偶数”数量的序列号,它是 11 + 11 + 11 + 11 + 11
。对于“奇数”数量的连续数字,它是相同的,只是您在最后添加中间数字。
如果重点是学习数学,请尝试编写上述程序。如果是学习循环,嘿,for 循环可能更慢,但它是一台计算机。它可以遍历几百万个数字,并且比眨眼的速度快得多。任何一个都可以正常工作。