Tại saoScala cho hiệu suất hiểu
for (
a <- 1 to 1000;
b <- 1 to 1000 - a;
c <- 1 to 1000 - a - b;
if (a * a + b * b == c * c && a + b + c == 1000)
) println((a, b, c, a * b * c))
266 ms
chậm hơn sau đó:
for (a <- 1 to 1000)
for (b <- 1 to 1000 - a)
for (c <- 1 to 1000 - a - b)
if (a * a + b * b == c * c)
if (a + b + c == 1000)
println((a, b, c, a * b * c))
62 ms
Nếu tôi hiểu đúng này nên giống nhau không?
Giải pháp sau khi xử lý câu trả lời:
for (
a <- 1 to 1000;
b <- 1 to (1000 - a)
) {
val c = (1000 - a - b)
if (a * a + b * b == c * c)
println((a, b, c, a * b * c))
}
9 ms
Thực sự hữu ích khi viết ít nhất phiên bản Scala bạn đã sử dụng. Tại hầu hết các hệ điều hành của bạn và các thông tin liên quan khác. –
Tôi đang sử dụng một cửa sổ 7 và phiên bản 2.9.2 sử dụng nhật thực với jre7. – Jeff
Cách lạ để tìm kiếm giải pháp - bạn yêu cầu 'a + b + c == 1000' vậy tại sao không chỉ đặt' c = 1000 - a - b'? (Rõ ràng đây không phải là câu trả lời cho câu hỏi ....) –