北理工python第五周作业

第一题,原题,主要是随机数的运用,三门语言一起学,每次到Python的时候都要回想一下格式是什么

import random

from time import perf_counter

c=input()

darts=int(c)

random.seed(123)

hits=0.0

for i in range(darts):

    x,y=random.random(),random.random()

    dist = pow(x**2+y**2,0.5)

    if dist<=1.0:

       hits=hits+1

pi=4*(hits/darts)

print("{:.6f}".format(pi))

第二题

这道题主要是判断质数,我的想法是用循环while else语法

然后WA了一个,原因就是用int()转浮点数的时候,会四舍五入,但是应该是向下取整

加一个

m = m + 1 if m < n else m

就行了

# 请在...补充一行或多行代码


def prime(m):

    i=0

    j=0

    while i<5:

        x=m+j

        k=1

        while k<x-1:

            k=k+1

            if x%k == 0:

                break

        else :

            i=i+1

            if i!=5:

                    print("{:},".format(x),end="")

                   

            elif i == 5:

                    print(x,end="")

                   

        j=j+1

n = eval(input())

m=int(n)

m = m + 1 if m < n else m

prime(m)

第三题,汉诺塔

虽然是原题,虽然我至少看过三个解析,但是我TM就是不能完全理解,还是先看老师的代码吧

# 请在...补充一行或多行代码

steps = 1

def hanoi(src, des, mid, n):

    global steps

    if n == 1:

        print("[STEP{:>4}] {}->{}".format(steps,src, des))

        steps+=1

    else:

        hanoi(src,mid,des,n-1)

        print("[STEP{:>4}] {}->{}".format(steps,src, des))

        steps+=1

        hanoi(mid,des,src,n-1)

N = eval(input())

hanoi("A", "C", "B", N)

第四题 太简单

第五题

经典题目说不清楚话

山本,到底是每次三位数,还是三次一位数构造

#请在...补充代码

import random


def genpwd(length):

    y=1

    for i in range(length):

        y*=10

    x=random.randint(y/10,y)

    return x


length = eval(input())

random.seed(17)

for i in range(3):

print(genpwd(length))

不过用Pow显然比我这里会短一些

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值