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}\n此时π的近似值是{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}\n此时π的近似值是{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)
  • 22
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值