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 的平方根的近似值

不会写

相关推荐
乌鸦不像写字台18 分钟前
【docker部署】在服务器上使用docker
服务器·docker·容器
sasaraku.20 分钟前
serviceWorker缓存资源
前端
RadiumAg1 小时前
记一道有趣的面试题
前端·javascript
yangzhi_emo1 小时前
ES6笔记2
开发语言·前端·javascript
yanlele2 小时前
我用爬虫抓取了 25 年 5 月掘金热门面试文章
前端·javascript·面试
Antonio9152 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
中微子3 小时前
React状态管理最佳实践
前端
烛阴3 小时前
void 0 的奥秘:解锁 JavaScript 中 undefined 的正确打开方式
前端·javascript
中微子3 小时前
JavaScript 事件与 React 合成事件完全指南:从入门到精通
前端
kfepiza3 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian