练习内容如下: 练习32:一组数字的总和
创建一个计算总和1 + 2 + 3 + ... + n的程序,其中n是用户输入的数字。
这是工作代码的一部分:
int first = 1;
int sum = 0;
while (first <= read) {
sum = sum + first;
first++;
}
将上面改为下面:
int first = 1;
int sum = 0;
while (first <= read) {
first++;
sum = sum + first;
}
产生错误答案。如果读取= 3则sum = 9而不是6,如果读取= 7则sum = 35而不是28,依此类推。为什么?
答案 0 :(得分:4)
在第二个代码段中,您将first
增加sum
,然后将其添加到2 + 3 + ... + read + (read+1)
,这意味着您正在计算总和
1 + 2 + ....... + read.
而不是
/
./project-a
./project-a/pom.xml
./project-a/facade/pom.xml -> makes a war
./project-a/delegate/pom.xml
./project-bean1
./project-bean1/pom.xml -> makes a jar
./project-parent
./project-parent/pom.xml -> makes a jar
./project-b
./project-b/pom.xml
./project-b/facade/pom.xml -> makes a war
./project-b/delegate/pom.xml
bean1 -> depends on parent
a -> depends on bean and parent
b -> depends on bean and parent
答案 1 :(得分:1)
使用调试器逐步执行代码。这将使您深入了解如何调试代码,教您如何使用调试工具,它将很容易帮助您发现错误。
您可以避免(计算上)昂贵的循环。 前N个数之和的直接公式为(N *(N + 1))/ 2