Demo31
n = eval(input())
for i in range(1, n + 1):
for j in range(abs(n // 2 + 1 - i)):
print(" ", end = "")
for k in range(1, n + 1):
if k <= i and k + i <= n + 1:
if k == 1 or k + i == n + 1 or k == i:
print("*", end = " ")
else:
print(" ", end = " ")
print()
Demo32
n = eval(input())
for i in range(0, n):
for j in range(abs(n // 2 - i)):
print(" ", end = "")
for k in range(1, n + 1):
if k <= 2 * i + 1 and k <= 2 * (n - i) - 1:
print("*", end = "")
print()
Demo33
"""
数据:randNum userNum
1.输入
2.比较大小直到猜中
3.输出结果
"""
import random
randNum = random.randint(0,100)
while True:
userNum = eval(input())
if randNum == userNum:
break
elif randNum < userNum:
print("高了")
else:
print("低了")
print("猜中了!答案就是%d" %randNum)
Demo34
最大公约数
a, b = map(int,input().split())
num = min(a, b)
for n in range(num, 0, -1):
if a % n == 0 and b % n == 0:
print(n)
break
Demo35
"""
输入一个大于1的正整数
判断是否是素数
输出
"""
num = eval(input())
#设置标志(哨兵)
flag = True
for n in range(2, num // 2 + 1):
if num % n == 0:
flag = False
break
if flag:
print("Yes")
else:
print("No")
Demo36
最小公倍数 = 两数相乘*最大公约数
a, b = map(int,input().split(" "))
num = min(a, b)
for i in range(num, 0, -1):
if a % i == 0 and b % i == 0:
break
print(i)
print(a * b // i)
Demo37
num = eval(input())
while num > 0:
for i in range(2, num + 1):
if num % i == 0:
print(i, end =" ")
break
num //= i
Demo38
num = eval(input())
tatal = 0
for i in range(1, num // 2 + 1):
if num % i == 0:
tatal += i
if tatal == num:
print("Yes")
else:
print("No")
Demo39
"""
数据:count num
1.素数从2开始算
2.不知道计算次数用while循环
3.输出十个素数换行
"""
num = 2
count = 0
while count != 50:
flag = True
for i in range(2, num // 2 + 1):
if num % i == 0:
flag = False
break
if flag:
print(num, end = "\t")
count += 1
if count % 10 == 0:
print()
num += 1
Demo40
"""
计算π的近似值
"""
i = eval(input())
PI = 0
for j in range(1, i + 1):
PI += (-1) ** (j + 1) / (2 * j - 1)
PI *= 4
print(PI)
Demo41
#近似计算e
i = eval(input())
tatal = 1
n = 1
for j in range(1, i + 1):
for k in range(2, j + 1):
n = 1 / k * n
tatal += n
n = 1
print(tatal)
Demo42
import random
count1 = 0 #用户赢的次数
count2 = 0 #电脑赢的次数
while count1 < 3 and count2 < 3:
randNum = random.randint(0,2)
print(randNum)
userNum = int(input())
if randNum == 0 and userNum == 1:
count1 += 1
print("用户赢")
elif randNum == 0 and userNum == 2:
count2 += 1
print("电脑赢")
elif randNum == 0 and userNum == 0:
print("平局")
if randNum == 1 and userNum == 1:
print("平局")
elif randNum == 1 and userNum == 2:
count1 += 1
print("用户赢")
elif randNum == 1 and userNum == 0:
count2 += 1
print("电脑赢")
if randNum == 2 and userNum == 1:
count2 += 1
print("电脑赢")
elif randNum == 2 and userNum == 2:
print("平局")
elif randNum == 2 and userNum == 0:
count1 += 1
print("用户赢")
if count1 == 3:
print("用户赢")
else:
print("电脑赢")
Demo43
count = 0
for i in range(1, 7):
for j in range(2, 8):
if i < j:
print("(%d, %d)" %(i, j))
count += 1
print("所有组合有%d" %count)
Demo44
count = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and j != k and i != k:
print("%d%d%d" %(i, j, k))
count += 1
print(count)
Demo45
for num in range(100, 1000):
#取个位数
a = num % 10
#取十位数
b = num // 10 % 10
#取百位数
c = num // 100
if a ** 3 + b ** 3 + c ** 3 == num:
print(num)
Demo46
n = eval(input())
#阶层为1和2的时候阶层是几层就有几种跳法
if 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, n = map(int,input().split())
total = 0
num = 0
for i in range(n):
num = num * 10 + a
total += num
print(total)
Demo48
n = eval(input())
s = ""
while n != 0:
m = n % 2
s = str(m) + s
n //= 2
print(int(s))
Demo49
s = input()
length = len(s) - 1
sum = 0
for i in s:
j = int(i)
sum += j * 2 ** length
length -= 1
print(sum)
Demo50
"""
数据:num
1.输入
2.不知道次数用while
3.chr(ord('A') + y - 10) 转字母
4.str(y) + s 从后往前输出
"""
num = eval(input())
s = ""
while num !=0:
y = num % 16
if y >= 10:
y = chr(ord('A') + y - 10)
s = str(y) + s
num //= 16
print(s)
Demo51
"""
1.输入一个字符串
2.将A-F转为数字 例如:ord('A') - 65 + 10
3.输出十进制
"""
s = input()
length = len(s)
sum = 0
for i in s:
if i >= 'A':
n = ord(i) - 65 + 10
else:
n = int(i)
sum += n * 16 ** (length - 1)
length -= 1
print(sum)
Demo52
s1 = input()
s2 = input()
s = ""
#取两个字符串中长度最小的字符串长度
min_len = min(len(s1), len(s2))
for i in range(min_len):
if s1[i] == s2[i]:
s += s1[i]
else:
break
print(s)
Demo53
s1 = input()
s2 = input()
count = 0
length = len(s1)
start = 0
while start < length:
if s1[start] == s2[0]:
#从当前下标往后取2个包括当前下标数
if s1[start:start + 3] == s2:
count += 1
start += 2
start += 1
print(count)
Demo54
s1 = input()
s2 = input()
m, n = len(s1), len(s2)
# 创建一个二维数组来存储子问题的解
dp = [[0] * (n + 1) for _ in range(m + 1)]
# 用于跟踪最长公共子串的长度以及其结束位置
max_length = 0
end_index = 0
# 填充 dp 数组
for i in range(1, m + 1):
for j in range(1, n + 1):
if s1[i - 1] == s2[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
if dp[i][j] > max_length:
max_length = dp[i][j]
end_index = i - 1 # 记录最长子串的结束位置
else:
dp[i][j] = 0
# 根据结束位置和最长子串的长度来提取最长公共子串
longest_substring = s1[end_index - max_length + 1: end_index + 1]
print(longest_substring)
Demo55
password = input()
length = len(password)
num_count = 0
uppercase_count = 0
for i in password:
if i >= '0' and i <= '9':
num_count += 1
elif i >= 'A' and i <= 'Z':
uppercase_count += 1
if length < 8:
print("No")
elif num_count < 2:
print("No")
elif uppercase_count < 2:
print("No")
#判断是否有字母或者数字
elif not all(c.isalpha() or c.isdigit() for c in password):
print("No")
else:
print("Yes")
Demo56
num = 2
count = 0
while count < 100:
# 将数字转换为字符串以检查是否为回文数
s = str(num)
if s == s[::-1]:
flag = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
flag = False
break
# 如果既是回文数又是素数,则输出并增加计数器
if flag:
count += 1
print(num, end = " ")
# 每10个数字后换行
if count % 10 == 0:
print()
num += 1
Demo57
num1 = 2
count = 0
while count < 100:
flag1 = True
for n in range(2, int(num1 ** 0.5) + 1):
if num1 % n == 0:
flag1 = False
break
#将数字转化为翻转数
s = str(num1)
num2 = int(s[::-1])
flag2 = True
for n in range(2, int(num2 ** 0.5) + 1):
if num2 % n == 0:
flag2 = False
break
flag3 = True
#判断两个数是否是回文
if num1 == num2:
flag3 = False
if flag1 and flag2 and flag3:
print(num1, end =" ")
count += 1
#每输出十个数换行
if count % 10 == 0:
print()
num1 += 1
Demo58
num1 = 3
while num1 < 1000:
for i in range(2, int(num1 ** 0.5) + 1):
if num1 % i == 0:
break
else:
num2 = num1 + 2
for j in range(2, int(num2 ** 0.5) + 1):
if num2 % j == 0:
break
else:
print("(%d, %d)" %(num1, num2))
num1 += 1
Demo59
p = 2
while p <= 31:
num = 2 ** p - 1
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
break
else:
print(num)
p += 1
Demo60
n = eval(input())
nextGuess = 0
lastGuess = 1
sqrt_n = 0
while True:
nextGuess = (lastGuess + n / lastGuess) / 2
if abs(nextGuess - lastGuess) < 0.0001:
sqrt_n = nextGuess
break
else:
lastGuess = nextGuess
print(sqrt_n)