Demo31
n = eval(input())
for i in range(1, n + 1):
for k in range(abs(n // 2 - i + 1)):
print(" ", end = "")
for j in range(1, i + 1):
if j <= i and i + j <= n + 1:
if i == j or j == 1 or j + i == n + 1:
print("*", end = " ")
else:
print(" ", end = " ")
print()
Demo32
n = eval(input())
for i in range(1, n + 1):
for k in range(abs(n // 2 - i + 1)):
print(" ", end = "")
for j in range(1, i + 1):
if j <= i and i + j <= n + 1:
if i == j or j == 1 or j + i == n + 1:
print("*", end = " ")
else:
print(" ", end = " ")
print()
Demo33
import random
num = random.randint(0,100)
while True:
n = eval(input())
if n > num:
print("高了")
elif n < num:
print("低了")
else:
print("猜中了")
break
Demo34
num1, num2 = eval(input())
min_num = min(num1, num2) #找到两数中最小的
for num in range(min_num, 0, -1):
if num1 % num == 0 and num2 % num == 0: #最小数从尾到头找最大公约数
print(num) #两数同时取余等于0的则是最大公约数
break
Demo35
num = eval(input())
flag = True #哨兵:监控状态变化 此时默认为素数
for n in range(2, num // 2 + 1): #只用验证除1外是否还有其他数可以整除num
if num % n == 0:
flag = False
break
if flag: #flag为True
print("是素数")
else:
print("不是素数")
Demo36
最小公倍数
num1, num2 = eval(input())
min_num = min(num1, num2) #找到两数中最小的
for num in range(min_num, 0, -1):
if num1 % num == 0 and num2 % num == 0: #最小数从尾到头找最大公约数
n = num1 * num2 / num
print(n)
break
#最小公倍数等于两数之积除以最大公约数
Demo37
#整数的素因子
n=eval(input())
i=2 #我们从二开始验证如120%2
while True:
if n % i == 0:
print(i, end = ",")
n /= i
else:
i += 1
if n == 1:
break
Demo38
#完全数
#判断一个正整数是不是完全数
input_a =input()
a = int(input_a)
count = 1
suma = 0
while count <= a/2:
if a % count == 0:
suma = suma + count
count = count + 1
else:
count = count + 1
if a == suma:
print("Yes")
else:
print("No")
Demo39
num = 2
count = 0
while count != 50:
flag = True
for n in range(2, num // 2 + 1):
if num % n == 0:
flag = False
if flag:
count += 1
print(num, end = "\t")
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
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, 8):
for j in range(i, 8):
print(f"({i},{j})")
count += 1
print(f"一共有{count}种组合")
Demo44
#组合问题||
list = [1, 2, 3, 4]
add = 0
for x in list: #对列表进行遍历,提取数字放入 x 中作为三位数的第一位
for y in list: #对列表进行遍历,提取数字放入 y 中作为三位数的第二位
for z in list: #对列表进行遍历,提取数字放入 z 中作为三位数的第三位
#对遍历的三个数字进行判断 若重复则不输出退出 ,若三个数字不重复则进行输出
if (x != y) and (x != z) and (y != z):
add += 1
print(x,y,z,end= "|")
print("一共有",add,"个")
Demo45
#水仙花数
for n in range(0, 100000):
i = n // 100
j = n // 10 % 10
k = n % 10
if n == i ** 3 + j ** 3 + k ** 3:
print(n)
Demo46
#青蛙跳台阶 规律:除了第一二个台阶 后面的台阶数等于前两个台阶数之和
a = 1
b = 2
c = 3
n = eval(input())
if n == 1 or n == 2:
print(n)
else:
for i in range(3, n+1):
a = b #将a,b,c位置往后移
b = c
c = a + b
print(c)
Demo47
#堆叠相加
a, h = eval(input())
sum = 0
num = 0
for i in range(h):
num = num * 10 + a
sum += num
print(sum)
Demo48
a = eval(input('请您输入十进制数:'))
m = ''
while a > 0:
m += str(a%2) #a对2求余,添加到字符串m最后
a = a // 2
print(m[::-1]) #反向输出
Demo49
num = input("请输入一个二进制:")
sum = 0
length = len(num)
for x in range(length):
sum += int(num[length-1-x]) * pow(2, x)
print(sum)
Demo50
num = eval(input())
s = ""
while num != 0:
y = num % 16
if y > 10:
s = chr(ord('A') + y - 10)
s = str(y) + s
num = num // 16
print(s)
Demo51
#十六进制转十进制
num = input()
s = 0
count = 0
sum = 0
for j in num:
count += 1
for i in num:
s = ord(i)
if s <= 57: #转换数字
s = s - 48
else: #转换字母
s = s - 55
num1 = s * 16 ** (count - 1)
sum += num1
count -= 1
print(sum)
Demo52
#最长公共前缀
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 = (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 = input()
s2 = input()
m, n = len(s1), len(s2)
dp = [[0] * (n + 1) for _ in range(m + 1)]
max_length = 0
end_index = 0
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
count = 0
num = 10
while count < 100:
for i in range(2 , num // 2 + 1):
if num % i == 0:
break
else:
if str(num) == str(num)[::-1]:
print(num , end = "\t")
count += 1
if count % 10 == 0: #换行
print()
num += 1
Demo57
num = 2
count = 0
while count < 100:
flag1 = True
flag2 = True
for n in range(2, num // 2 + 1):
if num % n == 0:
flag1 = False
break
str_num = str(num)
restr_num = str_num[::-1]
re_num = int(restr_num)
for i in range(2, re_num // 2 + 1):
if re_num % i == 0:
flag2 = False
break
if flag1 and flag2 and num > 10:
print(num, end = "\t")
count += 1
if count % 10 == 0:
print()
num += 1
Demo58
num1 = 2
count = 0
while count < 1000:
flag1 = True
flag2 = True
for n in range(2, num1 // 2 + 1):
if num1 % n == 0:
flag1 = False
break
for i in range(2, num1 // 2 + 1):
num2 = num1 + 2
if num2 % i == 0:
flag2 = False
break
if flag1 and flag2:
print(num1, end = "\t")
count += 1
if count % 10 == 0:
print()
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)