巢狀迴圈-GOLANG和PYTHON對比
阿新 • • 發佈:2022-04-02
執行示例:i + j + k = 1000 i^2 + j^2 = k^2
GOLANG:
package main import ( "fmt" "time" ) func main() { kt := time.Now().UnixNano() / 1e6 for i := 0; i < 1001; i++ { for j := 0; j < 1001; j++ { for k := 0; k < 1001; k++ { if i+j+k == 1000 && i*i + j*j == k*k { fmt.Println("i, j, k: ", i, j, k) } } } } st := time.Now().UnixNano() / 1e6 fmt.Println(st-kt) fmt.Println("finish") } //i, j, k: 0 500 500 //i, j, k: 200 375 425 //i, j, k: 375 200 425 //i, j, k: 500 0 500 //981 //finish
PYTHON: while迴圈
import time kt = int(time.time() * 1000) i = 0 while i < 1001: j = 0 while j < 1001: k = 0 while k < 1001: if i + k + j == 1000 and i**2 + j**2 == k**2: print(f"i: {i}; j: {j}; k: {k}") k += 1 j += 1 i += 1 st = int(time.time() * 1000) print(st-kt) print("finish") """ i: 0; j: 500; k: 500 i: 200; j: 375; k: 425 i: 375; j: 200; k: 425 i: 500; j: 0; k: 500 154175 finish """
PYTHON: for迴圈
import time kt = int(time.time() * 1000) for i in range(1001): for j in range(1001): for k in range(1001): if i + k + j == 1000 and i**2 + j**2 == k**2: print(f"i: {i}; j: {j}; k: {k}") st = int(time.time() * 1000) print(st-kt) print("finish") """ i: 0; j: 500; k: 500 i: 200; j: 375; k: 425 i: 375; j: 200; k: 425 i: 500; j: 0; k: 500 118876 finish """