循环类题目
2020-04-06 本文已影响0人
lvyz0207
# 1.计算 1+2+4+......+100 的和。
print(100 * 101 / 2)
# 2.计算 1+1/3+1/5+......+1/99 的和。
def test2():
n = 50
s = 0
for i in range(1, n + 1):
a = 1 / (2 * i - 1)
s += a
print(s)
# test2()
# 3.从键盘输入一个字符串,直到回车结束,统计字符串中的大小写英文字母各有多少个。
def test3():
a = input("请输入一个字符串:")
min_count = 0
max_count = 0
other = 0
for i in a:
if i >= "a" and i <= "z":
min_count += 1
elif i >= "A" and i <= "Z":
max_count += 1
else:
other += 1
print("小写字母个数为:{}".format(min_count))
print("大写字母个数为:{}".format(max_count))
print("其他类型个数为:{}".format(other))
# test3()
# 5.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...,求出这个数列的前 20 项之和。
def test5():
a = 2
b = 1
s = 0
for i in range(1, 3):
s += a / b
a, b = a + b, a
print(s)
# test5()
# 6.输入若干个同学的成绩,计算平均成绩,输入的成绩为负数或大于 100 时表示结束输入。
def test6():
score = 0
i = 0
while True:
a = int(input("输入学生成绩"))
if a < 0 or a > 100:
break
else:
score += a
i += 1
avg = score / i
print(avg)
# test6()
# 7.输入三个正整数 a、b、n,精确计算 a/b 的结果到小数后 n 位。
def test7():
a = int(input("a:"))
b = int(input("b:"))
n = int(input("n:"))
num = round(a / b, n)
print(num)
# test7()
# 8.一个猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早 上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。 到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
def test8():
a = 1
for i in range(2, 11):
tao = 2 * a + 1 # 第N天桃的数量
a = tao
print(tao)
# test8()
# 9.有一序列:1,3,5,8,13,21...,用 while 循环求出这个数列的前 20 项之和。
def test9():
n = 4
a1 = 3
a2 = 5
sum_a = 9
while n < 6:
a = a1 + a2
sum_a += a
a1, a2 = a2, a1 + a2
n += 1
print(sum_a)
# test9()
# 10.一个数如正好等于它的所有因子之和,则称为完数,例如 6 的因子有 1、2、3,而 6=1+2+3, 因此 6 是一个完数。编程序找出 1000 之内的所有完数。
def test10():
# flag =
for i in range(2,1001):
a = 0
for j in range(1,i):
if i%j == 0:
a += j
if a == i:
print(i)
# test10()
# 11.有近千名学生排队,7 人一行余 3 人,5 人一行余 2 人,3 人一行余 1 人,编写程序求 学生人数。
def test11():
list1 = []
for i in range(1,1000):
if i%7 == 3 and i%5 ==2 and i%3==1:
list1.append(i)
print(max(list1))
# test11()
# 12.小华今年 12 岁,他妈妈比他大 20 岁,编写程序计算多少年后他妈妈年龄比他大一倍。
def test12():
xiaohua = 12
mum = xiaohua + 20
for i in range(1,100):
if 2*(xiaohua +i) == (mum + i):
print(i)
# test12()
# 13.两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已抽签决 定比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序 找出三队赛手的名单。
def test13():
for i in ("x", "y", "z"):
for j in ("x", "y", "z"):
if i != j:
for k in ("x", "y", "z"):
if k != i and k != j:
if i != "x" and k != "x" and k != "z":
print("a->%s\nb->%s\nc->%s" % (i, j, k))
test13() # 这题费了不少脑细胞!
# 14.目前世界人口是 60 亿,如每年按 1.5%的比例增长,则多少年后是 80 亿?
def test14():
for i in range(1,1000):
people = 60*(1.015**i)
if people >= 80:
print(i)
break
test14()
# 15.一球从 80 米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第 10 次落 地时共经过多少米?第 10 次反弹多高?
def test15():
distance = 80
for i in range(1,11):
height = 80/(2**i)
distance += 2*height
print("第 10 次反弹{}米,第 10 次落 地时共经过{}米".format(height,distance-height))
test15()
星航指挥官