Python实验四 循环结构程序设计
1.写出下列程序的运行结果
i=1 while i+1: if i>4: print(i) i+=1 break print(i) i+=2
2.写出下列程序的运行结果
sum=j=1 while j <=3: f=1 for i in range(2,2*(j+1)): f*=i sum+=f j+=1 print("sum=", sum)
3.阅读下面的程序,程序的功能是什么?
import math n=0 for m in range(101,201,2): k=int(math.sqrt(m)) for i in range(2, k+2): if m%i==0: break if i==k+1: if n%10==0: print() print(m,end=" ") n+=1
4.从键盘输入 5 组数,每组有 6 个数,求出每组中的元素绝对值之和的最大者 和最小者,请补充程序
max1=min1=0 for i in range(1,6): sum=0 for j in range(1,7): x=int(input()) sum+=abs(x) if sum>max1: max1=sum if i==1 or sum<min1: min1=sum print(max1,min1)
5.利用下列公式
(1)计算n=1000时π的近似值
# 3997 3999 n=4*int(input("请输入n:")) sum=0 for i in range(1,n,2): if((i+1)%4==0): i=-i sum+=1/i print("当n取{0}时,最后一项为1/{1}={2} 此时π的近似值是{3}".format(n/4,i,1/i,4.0*sum))
(2)求π的近似值,直到最后一项的绝对值小于10−6为止
import math n=1 sum=0 while True: if(1/n<math.pow(10,-6)): break if((n+1)%4==0): n=-n sum+=1/n n=abs(n)+2 print("当n取{0}时,最后一项绝对值为{1} 此时π的近似值是{2}".format(n,1/n,4*sum))
6.有数列,求数列前20项求和,2/1,3/2,5/3,8/5,13/8,……
n=int(input("请输入求和的项数n:")) x,y,sum=2,1,0 num=1 while True: sum+=x/y num+=1 if(num>n): break temp=x x=x+y y=temp print("数列的前{0}项之和是{1}".format(n,sum))
7.求满足如下条件的 3 位数,它除以 9 的商等于它各位数字的平方和。例如 224,它除以 9 的商为 24,而22 + 22 + 42 = 24
for i in range(100,1000): bit=i%10 ten=int((i%100)/10) hundred=int(i/100) if (int(i/9)==(bit*bit+ten*ten+hundred*hundred)): print(i)
8.如果一个整数等于它的因子(不包括该数本身)之和,则称该数为完数。例如,6 的因 子是 1,2,3,因为 6=1+2+3,因此 6 是完数。找出 1000 以内的所有完数
for i in range(1,1000): i1=i for j in range(1,i): if(i%j==0): i1-=j if(i1==0): print(i)