实验04(循环)
一、课内实验题(共10小题,100分)
题型得分 100
【描述】
计算如下式子:
前n项之和,结果保留3位小数。
【输入】
输入一个正整数n。
【输出】
输出数列前n项的和,结果保留3位小数。
【输入示例】
10
【输出示例】
2.133
【来源】
《Python程序设计基础》第3章编程题5。
(10分)
我的答案:
n=int(input())
s=0
for i in range(n):
s+=1/(2*i+1)
print("{:.3f}".format(s))
题目得分 10
【描述】
计算如下式子:
的值。
例如,a为2,n为5,则式子的值为24690(2+22+222+2222+22222)。
【输入】
输入a和n。
【输出】
输出式子的值。
【输入示例】
2 5
【输出示例】
24690
【来源】
《Python程序设计基础》第3章编程题6。
(10分)
我的答案:
a, b = map(int, input().split())
temp=0
c=0
sum=0
for i in range(b):
for j in range(i+1):
c=pow(10,j)*a
temp+=c
sum=sum+temp
print(sum)
题目得分 10
【描述】
计算a+b。a和b为整数。
【输入】
输入有多行。
每一行上有a和b两个整数,其间以空格间隔。
【输出】
分行输出对应的a+b的值。
【输入示例】
5 3
10 20
【输出示例】
8
30
(10分)
我的答案:
while 1:
a, b = map(int, input().split())
print(a+b)
题目得分 10
【描述】
计算整数和。
【输入】
输入有多行。
每一行上,第1个数是正整数n,表示后面同一行上有n个整数,整数之间均以空格间隔。
最后一行上为0,表示输入结束。
【输出】
分行输出对应的整数和。
【输入示例】
4 1 2 3 4
5 1 2 3 4 5
0
【输出示例】
10
15
(10分)
我的答案:
while 1:
line = input().split()
list1=list(line)
s=0
for i in range(len(list1)):
list1[i]=int(list1[i])
if list1[0]==0:
break
else:
for i in range(1,list1[0]+1):
s+=list1[i]
print(s)
题目得分 10
【描述】
编写程序,计算并输出下式的值,计算到最后一项的值小于0.000001时为止,结果保留6位小数。
【输入】
没有输入。
【输出】
显示表达式的值,精确到小数点后6位。
【来源】
《Python程序设计基础》第3章编程题7。(10分)
我的答案:
e=0.000001
s=0
i=0
while 1:
if (1 / (3 * i + 1) < e):
break
if i%2==0:
s+=1/(3*i+1)
else:
s-=1/(3*i+1)
i=i+1
print("{:.6f}".format(s))
题目得分 10
【描述】
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。用45人正好搬45块砖,问有多少种搬法?
【输入】
没有输入。
【输出】
输出搬砖的男人、女人和小孩数。
若有多组答案,则分行输出各组答案。
【输入示例】
没有输入。
【输出示例】
A B C
【来源】
《Python程序设计基础》第3章编程题9。
【提示】
输出示例只是格式说明,并非正确答案。A、B、C分别表示男人、女人、小孩数。
可能有多组答案。(10分)
我的答案:
f=0
for i in range(45//2+1):
for j in range(45//3+1):
for k in range(0,46,2):
if i+j+k==45 and 3*i+2*j+k/2==45:
f=1
print(i,j,k)
题目得分 10
【描述】
计算a+b。a、b为整数。
【输入】
第一行为正整数n,表示下面有n行数据。
接着有n行数据。每一行上有a和b两个整数,其间以空格间隔。
【输出】
输出有n行。
分行输出对应的a+b的值。
【输入示例】
2
5 3
10 20
【输出示例】
8
30
(10分)
我的答案:
n=int(input())
for i in range(n):
a, b = map(int, input().split())
print(a + b)
题目得分 10
【描述】
计算整数和。
【输入】
第一行为正整数n,表示下面有n行数据。
每一行上,第1个数是正整数m,表示后面同一行上有m个整数,整数之间均以空格间隔。
【输出】
输出有n行,分行输出对应的整数和。
【输入示例】
2
4 1 2 3 4
5 1 2 3 4 5
【输出示例】
10
15
(10分)
我的答案:
n=int(input())
for i in range(n):
while 1:
line = input().split()
list1 = list(line)
s = 0
for i in range(len(list1)):
list1[i] = int(list1[i])
else:
for i in range(1, list1[0] + 1):
s += list1[i]
print(s)
题目得分 10
【描述】
读入2个正整数a和,1≤a≤9, 1≤b≤10,产生整数aa…a,一共b个a。
【输入】
在一行中输入a和b。
【输出】
在一行中输出整数aa…a,一共b个a。
【输入示例】
1,5
【输出示例】
11111
(10分)
我的答案:
a, b = map(int, input().split(','))
for i in range(b):
print(a,end='')
题目得分 10
【描述】
给定两个整数a和b,输出从a到b的所有整数以及这些整数的和。
【输入】
在一行中给出2个整数a和b,其中-100≤a≤b≤100,其间以空格分隔。
【输出】
首先顺序输出从a到b的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = x的格式输出全部数字的和x。
【输入示例】
-3 8
【输出示例】
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30
(10分)
我的答案:
a,b = map(int,input().split(" "))
count = 0
sum = 0
for i in range(a,b+1):
print("{:>5d}".format(i),end="")
count = count + 1
sum+=i
if (count%5) == 0:
print()
if (count%5) > 0:
print()
print("Sum = {:d}".format(sum))
else:
print("Sum = {:d}".format(sum))
题目得分 10