问题描述:编写函数,求出1^2-2^2+3^2-4^2+⋯+97^2-98^2+99^2-100^2。 函数以n为参数; 请分别用4种方法实现,并完成封装。 n由用户从键盘输入:100。 验证结果:-5050。
时间: 2024-05-14 21:17:52 浏览: 77
以下是四种实现方式及其封装:
方法一:直接计算每一项的值,然后累加
```python
def sum_of_squares_1(n):
result = 0
for i in range(1, n+1):
if i % 2 == 0:
result -= i*i
else:
result += i*i
return result
```
方法二:利用数学公式,化简后求和
```python
def sum_of_squares_2(n):
return (n//2) * (n+1) * (n-1) - (n//2) * (n+1) * 2
```
方法三:利用循环展开,每次累加4项
```python
def sum_of_squares_3(n):
result = 0
for i in range(1, n//4+1):
result += (8*i*i - 4*i)
return result
```
方法四:利用递归,每次递归处理前半部分和后半部分
```python
def sum_of_squares_4(n):
if n == 1:
return 1
elif n % 2 == 0:
return -n*n + sum_of_squares_4(n-1)
else:
return n*n + sum_of_squares_4(n-1)
```
以上四个函数都可以得到正确的结果,可以封装成一个函数,供用户调用:
```python
def sum_of_squares(n):
return sum_of_squares_1(n) # 使用其中一种实现方式
```
用户调用时,只需要输入参数n即可:
```python
n = int(input("请输入n:"))
print(sum_of_squares(n)) # 输出结果:-5050
```
阅读全文