Demo31~60

Demo31 打印空心菱形 II

n = eval(input("请输入需要打印的行数:"))

for i in range(1,n+1):

for k in range(abs(n // 2 + 1 - i)):

print("",end = " ")

for j in range(1,n + 1):

if j <= i and i + j <= n + 1:

if j == 1 or j == i or j + i == n + 1:

print("*",end = " ")

else:

print(" ",end = " ")

print()

Demo32 打印菱形 III

python 复制代码
n = eval(input("请输入需要打印的行数:"))
for i in range(1, n + 1):
    for k in range(abs(n // 2 + 1 - i)):
        print(" ", end="")
    for j in range(1, n + 1):
        if i <= n // 2 + 1:
            if abs(n // 2 + 1 - i) + j <= n and j <= i * 2 - 1:
                print("*", end="")
        if i > n // 2 + 1:
            if i + j <= n + abs(n // 2 + 1) - abs(n // 2 + 1 -i):
                print("*", end = "")
    print(

Demo33 猜数字

题目描述

计算机随机生成一个 [0,100] 之间的整数,程序提示用户连续地输入数字直到它与那个随机生成的数字相同

对于用户输入的数字,程序会提示它是过高还是过低

python 复制代码
"""
import random
random.randint(0,100)  //随机产生一个0-100的任意一个整数
猜数字
"""
import random
randNum = random.randint(0,100)


while True:
    UserNum = eval(input())
    if UserNum < randNum:
        print("小了")
       
    elif UserNum > randNum:
        print("大了")
        
    else:
        print("猜对了")
        break

Demo34 最大公约数 I

题目描述

输入两个正整数,计算其最大公约数,例如 4 和 2 的最大公约数是 2 , 16 和 24 的最大公约数是 8

python 复制代码
n,m = eval(input())
min_num = min(num1,num2)
for num in range(min_num,0,-1):
    if num1 % == 0 and num2 % num ==0:
        print(num)
        break

Demo35 判断素数

题目描述

一个大于 1 的整数如果只能被正整数 1 和它本身整除,则它就是素数,例如 2 、 3 、 5 和 7 都是素数,而 4 、

6 、 8 、 9 则不是

输入输出描述

输入一个大于 1 的正整数

输出 Yes 表示该数字是素数,否则输出 No

python 复制代码
num = eval(input("请输入一个大于1的正整数:"))
#哨兵:监控状态变化
flag = True   #默认是素数
for i in range(2, num // 2 + 1):
    if num % i == 0:
        flag = False
        break
if flag:
    print("Yes")
else:
    print("No")

Demo36 最小公倍数

题目描述

输入两个正整数,计算其最小公倍数,例如 4 和 2 的最小公倍数是 4 , 3 和 5 的最小公倍数是 15

python 复制代码
num1, num2 = eval(input("请输入两个正整数:"))
maxNum = max(num1, num2)
for i in range(maxNum, num1 * num2 + 1):
    if i % num1 == 0 and i % num2 == 0:
        print("最小公倍数为",i)
        break

Demo37 整数的素因子

题目描述

输入一个正整数,然后找出它所有的最小因子,也称之为素因子

python 复制代码
#整数的素因子
num = eval(input("请输入一个正整数:"))
while num != 1:
    for i in range(2, num + 1):
        if num % i == 0:
            print(i,end=" ")
            num //= i
            break

Demo38 完全数

题目描述

如果一个正整数等于除了它本身之外所有正因子的和,那么这个数称为完全数

例如 6 = 3 + 2 + 1 , 28 = 14 + 7 + 4 + 2 + 1

输入输出描述

输入一个正整数

输出该数是否为完全数

python 复制代码
num = eval(input("请输入一个正整数:"))
sum = 0
for i in range(1, num // 2 + 1):
    if num % i == 0:
        sum += i
if sum == num:       #计算正因子之和是否等于输入数字
    print("Yes")
else:
    print("No")

Demo39 前 50 个素数

题目描述

打印前 50 个素数,每打印 10 个素数换行

python 复制代码
#打印前50个素数
num = 2
count = 0
while count < 50:    #设定条件
    flag = True      #设定哨兵
    for n in range(2, num // 2 + 1):
        if num % n == 0:
            flag = False
            break
    if flag:
        print(num, end = "\t")
        count += 1
        if count % 10 == 0:
            print()
    num += 1

Demo40 计算 π

题目描述

你可以使用下面的数列近似计算 π

当 i 越大时,计算结果越近似于 π

python 复制代码
#求e的值
import math
ite = eval(input("请输入迭代次数:"))
e = 1#初始化
for i in range(1,ite+1):
        result = math.factorial(i)#利用Python标准库中的函数,用于计算给定整数的阶乘
        e += 1 / result#加上当前迭代次数的阶乘的倒数
print(e)

Demo42 剪刀石头布 II

题目描述

延伸【 Demo21 剪刀石头布 I 】的问题,利用循环将程序改为,计算机和电脑谁先赢三次,谁就是终极胜利者

Demo43 组合问题 I

题目描述

在数字范围 [1,7] 之间,任意选择两个不相同的数作为一个组合,输出每一组组合,并统计所有组合的个数

注:组合( a , b )与组合( b , a )算同一种组合,只记录一次

python 复制代码
#组合问题1
count = 0
for i in range(1,8):
    for j in range(i+1,8):
        print(f"组合 ({i}, {j})")
        count += 1
print("共有组合: ", count)

Demo44 组合问题 II

题目描述

有 1 、 2 、 3 、 4 这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少

python 复制代码
#组合问题2
count = 0
for i in range(1, 5):
    bai = i
    for j in range(1, 5):
        if i != j:  # 第二位数与第一位数不相等
            shi = j
            for k in range(1, 5):
                if k != i and k != j:  # 第三位数与第一位数和第二位数都不相等
                    ge = k
                    print(bai * 100 + shi * 10 + ge)
                    count += 1
 
print("组合个数为", count)

Demo45 水仙花数

题目描述

水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身

python 复制代码
for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
           if i * 100 + j * 10 + k == i ** 3 + j ** 3 + k ** 3:
                print(i * 100 + j * 10 +k)

Demo46 青蛙跳台阶

题目描述

一只青蛙,一次可以跳一个台阶或者两个台阶,现有 n 个台阶,问该青蛙有多少种不同的跳法?

例如:两个台阶,有两种跳法( 1+1 , 2 );四个台阶,有五种跳法( 1+1+1+1 , 2+1+1 , 1+2+1 ,

1+1+2 , 2+2 )

python 复制代码
#青蛙跳台阶
n = eval(input())
if n == 1 or n == 2:
    print(n)
else: 
    a = 1
    b = 2
    c = 0
    for i in range(3, n+1):
        c = a + b
        a = b
        b = c 
    print(c)

Demo47 堆叠相加

题目描述

现有堆叠相加模式

例如:a+aa+aaa+aaaa....

2+22+222+2222+22222,其中 a 为 2 ,且有 5 组数字

python 复制代码
#堆叠相加:如:3 4 >>> 3 + 33 + 333 + 3333
a,n = eval(input())
sum = 0
num = 0
for i in range(n):
    num = num * 10 + a   # 2 22 222
    sum += num      #2 24 246
print(sum)

Demo48 十进制转二进制

python 复制代码
s = ""
num = int(input("请输入一个十进制数:"))
while num != 0:
    y = num % 2
    s = str(y) + s
    num = num // 2
print(s)

Demo49 二进制转十进制

python 复制代码
sum = 0
n = input("请输入一个二进制数字:")
for i in range(len(n)-1, -1, -1):
    num = int(n[i])
    sum += num * (2 ** (len(n) - 1 - i))
print(sum

Demo50 十进制转十六进制

python 复制代码
#十转十六进制
s=""
num = eval(input("请输入一个十进制数:"))
while num != 0:
    y = num % 16
    if y >= 10:
       y = chr(ord("A") + y - 10)
    s=str(y)+ s
    num = num //16
print(s)

Demo51 16进制转十进制

python 复制代码
"""
十六转10
1e1b9>>>>123321

a=10 b=11 c=12 d=13 e=14 f=15
1*16**5 + 14*16**4 +1*16**3+ 11*16**2+9*16**1
"""
y = input("请输入一个16进制的数字:")
sum = 0
for i in range(len(y) - 1,- 1,- 1):
    if int (y[i],16) >= 10:
        num = ord(y[i]) + - ord('a') + 10
    else:
        num = int (y[i])
    sum += num * (16**(len(y) - 1 - i))
print(sum)

Demo52 最长公共前缀

题目描述

给定两个字符串 s1 和 s2 ,求两个字符串最长的公共前缀串,字符区分大小写

python 复制代码
#最长公共前缀
s1 = (input("请输入第一个字符串:"))
s2 = (input("请输入第二个字符串:"))
strSame = ""
minLen = min((len(s1), len(s2)))
for i in range(minLen):
    if s1[i] == s2[i]:
        strSame += s1[i]
print(strSame)

Demo53 子串出现的次数

题目描述

给定两个字符串 s1 和 s2 ,求 s2 在 s1 中出现的次数,字符区分大小写,已匹配的字符不计入下一次匹配

输入输出描述

输入两行字符串,分别为 s1 和 s2 , s2 的长度小于等于 s1

输出 s2 在 s1 中出现的次数

python 复制代码
#子串出现的次数
s1 = (input("请输入父字符串:"))
s2 = (input("请输入子字符串:"))
count = 0
for i in range(0, len(s1),len(s2)):
    if s1[i : i + len(s2)] == s2:
        count += 1
print(count)

Demo54 最长公共子串

题目描述

给定两个字符串 s1 和 s2 ,求 s1 与 s2 之间的最长公共子串 ,区分大小写

Demo55 检测密码

题目描述

一些网站会给密码强加一些规则:

( 1 )密码必须至少有 8 个字符

( 2 )密码只能包含英文字母和数字

( 3 )密码应该至少包含两个数字

( 4 )密码应该至少包含两个大写字母

如果密码符合规则,输出 Yes ;否则输出 No

Demo56 回文素数

题目描述

回文素数是指一个数既是素数又是回文数,例如 131 既是素数也是回文数

输出显示前 100 个回文素数,每行显示 10 个

Demo57 反素数

题目描述

反素数是指一个将其逆向拼写后也是一个素数的非回文数,例如 17 和 71 都是素数但不是回文数,且反转后依旧是素数

输出显示前 100 个反素数,每行显示 10 个

Demo58 双素数

题目描述

双素数是指一对差值为 2 的素数,例如 3 和 5 就是一对双素数, 5 和 7 也是一对双素数

输出显示小于 1000 的双素数

python 复制代码
def is_prime(n):  # 判断是否为素数
    if n<= 1:
        return False
    for i in range(2,n):
        if n % i == 0:
            return False
    return True
for i in range(1,1000):
    if is_prime(i)and is_prime(i + 2):   #判断是否为双素数
        print(i,"和"i +2,"是双素数")

Demo59 梅森素数

如果一个素数可以写成

的形式,其中 p 是某个正整数,那么这个素数就称作梅森素数

输出 p ≤ 31 的所有梅森素数

Demo60 平方根的近似求法

有几种实现开平方的技术,其中一个称为巴比伦法

它通过使用下面公式的反复计算近似地得到: 当 nextGuess 和 lastGuess 几乎相同时, nextGuess 就是平方根的近似值

lastGuess初始值为 1 ,如果 nextGuess 和 lastGuess 的差值小于一个很小的数,比如 0.0001 ,就可以认为nextGuess 是 n 的平方根的近似值;否则, nextGuess 成为下一次计算的 lastGuess ,近似过程继续执行

编写代码,求解 n 的平方根的近似值

不会写

相关推荐
曼汐 .4 分钟前
企业网站架构部署与优化-Nginx核心功能
前端·nginx·架构
YUNYINGXIA25 分钟前
Python实现Web请求与响应
开发语言·前端·python
知星小度S26 分钟前
Linux探秘:驾驭开源,解锁高效能——基础指令
linux·运维·服务器
愛芳芳42 分钟前
vue3+element-plus+pinia完整搭建好看简洁的管理后台
前端·javascript·vue.js
zy happy1 小时前
黑马点评前端Nginx启动失败问题解决记录
java·运维·前端·spring boot·nginx·spring
进取星辰1 小时前
34、React Server Actions深度解析
前端·react.js·前端框架
麻辣香蝈蝈1 小时前
【Vue3】一文学会动态路由和编程式路由的使用
开发语言·前端·javascript·vue.js
CarryBircks1 小时前
nvm版本管理下pnpm 安装失败问题解决
前端·vue.js
flex88881 小时前
一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式
开发语言·python·microsoft
凌冰_2 小时前
CSS3过渡
前端·css·css3