要求:
- 分别用三种解法n=50000时的结果,并给出各种解法的执行时间;
- 给出三种解法的时间复杂度;
- 灵活调整n的值,给出其运行结果及不同解法的执行时间;
内容:
解法1:采用两重迭代,依次求出(1+2+3+…+i)(1≤i≤n)后累加。
解法2:采用一重迭代,利用i(i+1)/2(1≤i≤n)求和后再累加。
解法2:直接利用n(n+1)(n+2)/6公式求和。
解法一:两重迭代
def solve1(self):
sum_0 = 0
for i in range(1, self.n + 1):
for j in range(1, i + 1):
sum_0 += j
return sum_0
解法二:一重迭代
def solve2(self):
sum_0, sum_1 = 0, 0
for i in range(1, self.n + 1):
sum_1 +