法一
a=int(input())
b=int(input())
sum=0
while a<b:#如果包括b氛围的话就改成<=
if a%2==0:
sum+=a
a+=1
print(sum)
也可以直接用等差数列求和公式
法二
a=int(input())
b=int(input())
sum=0
if a % 2 != 0:
a = a+1
if b % 2 != 0:
b=b-1
sum= (a + b)*((b - a) / 2 + 1) / 2#(b - a) / 2 + 1表示a到b,包括a,b,一共有(b - a) / 2 + 1项
print(sum)
先算范围内的第一个和最后一个偶数x1,x2
最后直接算等差数列和为(x1+x2)((x2-x1)/2+1)/2
def func1(num1, num2):
plus = 0
while num1 < num2:
if num1 % 2 == 0:
plus += num1
if num2 % 2 == 0:
plus += num2
num1 += 1
num2 -= 1
return plus
def func2(num1, num2):
data = 0
for i in range(num1, num2, 1):
if i % 2 == 0:
data += i
return data
def func3(num1, num2):
x1, x2 = None, None
if num1 % 2 == 0:
x1 = num1
else:
x1 = num1 + 1
if num2 % 2 == 0:
x2 = num2
else:
x2 = num2 - 1
data = (x1 + x2)*((x2 - x1) / 2 + 1) / 2
return data
if __name__ == '__main__':
a = 10
b = 100
print("func1:", func1(a, b))
print("func2:", func2(a, b))
print("func3:", func3(a, b))
就是让你用数学公式解决,不是硬加
用等差数列公式求解呗,把尝试的过程发出来吧,看看有什么问题
while循环也可以吧
a=int(input())
b=int(input())
num = a
sum = 0
while (num<b):
if(num % 2 == 0):
sum += num
num += 1
print (sum)
a = int(input("输入a:"))
b = int(input('输入b:'))
sum_num = sum([x if x % 2 == 0 else 0 for x in range(a, b+1)])
print(sum_num)
先把a和b转成a到b中最接近的偶数,再用等差公式就可以了。
a = int(input())
b = int(input())
a += a % 2
b -= b % 2
print((a+b)*((b-a)/2+1)/2)