如果a + b + c = 1000(a, b, c均为非负整数),求满足a^2 + b^2 = c^2的所有可能的值。
import time
def method():
time_start = time.time()
for a in range(1001):
for b in range(1001):
for c in range(1001):
if a * a + b * b == c * c and a + b + c == 1000:
print('a = %d, b = %d, c = %d' % (a, b, c))
time_end = time.time()
print('总共耗时:%d' % (time_end - time_start))
def method_():
time_start = time.time()
for a in range(1001):
for b in range(1001 - a):
for c in range(1001):
if a * a + b * b == c * c and a + b + c == 1000:
print('a = %d, b = %d, c = %d' % (a, b, c))
time_end = time.time()
print('总共耗时:%d' % (time_end - time_start))
def method_optimized():
time_start = time.time()
for a in range(1001):
for b in range(1001):
c = 1000 - a -b # 减少时间复杂度
if a * a + b * b == c * c:
print('a = %d, b = %d, c = %d' % (a, b, c))
time_end = time.time()
print('总共耗时:%d' % (time_end - time_start))
if __name__ == '__main__':
method()
method_()
method_optimized()