不是高手。
但優化的地方只有輸入可以優化,意即取代 Scanner。
1. 使用 BufferedReader 讀進來,然後使用字串分析,轉換成數字
2. 使用 System.in.read() 分析數字
速度會稍會快一點跟記憶體會稍微小一點
代碼如下。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader input = new BufferedReader(
new InputStreamReader(System.in));
int z, a, b, c, d;
String line;
try {
//z = Integer.parseInt(input.readLine());
z = parseInt();
while (z-- != 0) {
/*line = input.readLine();
String[] token = line.split(" ");
a = Integer.parseInt(token[0]);
b = Integer.parseInt(token[1]);
c = Integer.parseInt(token[2]);
d = Integer.parseInt(token[3]);*/
a = parseInt();
b = parseInt();
c = parseInt();
d = parseInt();
System.out.print(a + " " + b + " " + c + " " + d + " ");
if (a + c == 2 * b && b + d == 2 * c) {
System.out.println(2 * d - c);
} else {
System.out.println(d * d / c);
}
}
} catch(Exception e) {
}
}
public static int parseInt() {
int i, value = 0, tmp;
try {
tmp = System.in.read();
while(tmp < '0' || tmp > '9')
tmp = System.in.read();
value = tmp-'0';
tmp = System.in.read();
while(tmp >= '0' && tmp <= '9') {
value = value * 10 + tmp-'0';
tmp = System.in.read();
}
} catch(Exception e) {}
return value;
}
}