# 1. 计算11+22+33+44+55的结果
import math
def test01():
result = 0
for i in range(1, 6):
result += i * 10 + i
print(result)
# 2. 解决百钱百鸡的问题,用100块钱买100只鸡,已知公鸡3块/只,母鸡2块/只,小鸡1块2只。
# 用100块钱可以买公鸡,母鸡和小鸡分别多少只
# gj = 33
def test02():
for gj in range(0, 33):
for mj in range(0, 50):
xj = 100 - mj - gj
if gj * 3 + mj * 2 + xj * 0.5 == 100:
print(f'公鸡:{gj},母鸡:{mj},小鸡:{xj}')
# 3. 猴子吃桃的问题,有一个猴子摘了很多桃子,
# 第1天吃了这些桃子的一半又多吃了1个,
# 第2天吃了剩下桃子的一半又多吃了1个,
# 后面每天都吃前一天剩下桃子的一半再多吃一个,
# 到第10天的时候发现只剩下一个桃子了,编写程序计算这个猴子第一天摘了多少个桃子
# 10 1 (1 + 1 ) * 2
# 9 4
# 8 10
def test03():
tz = 1
for i in range(9):
tz = (tz + 1) * 2
print(tz)
# 4. 输入一个正整数,分解这个数字的质因子(如:120=2*2*2*3*5)
def test04():
num = 120
k = 2
while True:
if num % k == 0:
print(k)
num = num / k
k = 1
k = k + 1
if k == num:
print(k)
break
# 5. 任何一个偶数都等于两个质数之和,输入一个偶数,输出能组合成这个偶数的2个质数分别是多少
# (如:10=5+5,10=3+7)
def test05():
even = 100
for num in range(2, even // 2 + 1):
flg = True
for i in range(2, num):
if num % i == 0:
flg = False
break
if flg:
k = even - num
k_flg = True
for j in range(2, k):
if k % j == 0:
k_flg = False
if k_flg:
print(num, k)
# 6. 计算车牌号码,有个肇事司机想逃跑,但是他的车牌号码被三个人看见了,但都没看全,
# 路人甲说:这个车牌号码的前2位是一样的;
# 路人乙说:这个车牌号码的后2位是一样的,但和前2位不一样;
# 路人丙说:这个车牌号码是一个数字的平方。编写程序计算这个4位车牌号码是多少
def test06():
for i in range(1000, 10000):
gw = i % 10
sw = i // 10 % 10
bw = i // 100 % 10
qw = i // 1000
if gw == sw and bw == qw and gw != bw:
if math.ceil(math.sqrt(i)) == math.sqrt(i):
print(i)
# 7. 输入2个数字,计算这2个数字的最小公倍数
def test07():
num1 = int(input('数字1:'))
num2 = int(input('数字2:'))
# max_num = num1 if num1 > num2 else num2
start_num = max(num1, num2)
end_num = num1 * num2 + 1
for num in range(start_num, end_num):
if num % num1 == 0 and num % num2 == 0:
print(num)
break
# 8. 输入2个数字,计算这2个数字的最大公约数
def test08():
num1 = int(input('数字1:'))
num2 = int(input('数字2:'))
end_num = min(num1, num2)
for num in range(end_num, 1, -1):
if num1 % num == 0 and num2 % num == 0:
print(num)
break
# 9. 输出1000以内的所有完数(完数是指这个数字除本身以外的所有因子之和等于本身的数字,
# 如:6=1+2+3,28=1+2+4+7+14)
def test09():
for num in range(1, 1001):
result = 0
for i in range(1, num):
if num % i == 0:
result += i
if result == num:
print(num)
# 10. 输入一个二进制转换为十进制
def test10():
str = input('输入一个二进制:')
index = 0
sjz = 0
for num in str[::-1]:
if num == "1":
sjz += pow(2, index)
index = index + 1
print(sjz)
# 11. 输入一个十进制转换为二进制
def test01():
for i in range(9):
for j in range(i + 1):
print("*", end=' ')
print()
def test02():
for i in range(9):
for j in range(9):
if j < 8 - i:
print(" ", end='')
else:
print("* ", end='')
print()
def test03():
for i in range(9):
for j in range(9):
if j < 8 - i:
print('* ',end='')
print()
def test04():
for i in range(8):
for j in range(8):
if j <= i:
print(" ",end='')
else:
print('* ', end='')
print()
def test05():
for i in range(5):
for j in range(9-i):
if j < i:
print(" ",end='')
else:
print('* ', end='')
print()
def test06():
for i in range(-4,5):
for j in range(9 - abs(i) + 1):
if j == abs(i) or j==8-abs(i):
print("* ",end='')
else:
print(' ', end='')
print()