import java.util.Scanner;
public class JavaApplication10 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
while (true) {
int read = Integer.parseInt(reader.nextLine());
if (read == 0) {
break;
}
int sum;
sum = read;
System.out.println("Sum now: " + sum);
while (true) {
int read1 = Integer.parseInt(reader.nextLine());
if (read1 != 0) {
sum += read1;
System.out.println("Sum now: " + sum);
} else if (read1 == 0) {
System.out.println("Sum in the end: " + sum);
break;
}
}
}
}
}
这是我写的代码,想知道这是否是最快的方法?
答案 0 :(得分:6)
您在这里问错了问题。您看,您的代码可以做到:
现在:
简而言之:您无法编写与众不同的“ this”代码,从某种意义上说,它已经是“最优”的:您得到了输入,您没有在浪费时间/内存“存储”它,只是在积累总和,完成了。 那个要求已正确编码。
您唯一可以保存的是打印语句,因为单个println可能花费 milli 秒,而添加int值可能会在 nano 秒内发生。是的:打印比累加值慢数千倍。更糟糕的是:如果有人坐在机器前,那么程序会坐在那里,直到用户键入数字和ENTER键。因此,“如何添加”不会以任何重要方式影响代码的整体运行时间。
换句话说:您正处于担心“性能”无济于事的时刻。学习如何编写人类可读的代码,学习如何编写简洁的代码来优雅地完成您想做的事情。
性能是一个奢侈品问题,您在学习曲线的后期会担心。