1.转换成二进制
num=1100100
result=0
num=str(num)[::-1]
for i in range(len(num)):
print(num[i],int(num[i])*(2**i))
result+=int(num[i])*(2**i)
print(result)
2.求两个正整数m和n的最大公约数
'''
10 5--->5
公约数是2个数字可以同时被整除
算法:
两个数字比大小,找到的小的数字
从小数字开始,用循环的方式,每次递减1,看看是否可以出现同时
被2个数字整除的情况,如果找到了,就停止循环,这个数字就是
最大公约数
10,5---》10》5 5
for循环 5 4 3 2 1 以倒序的方式来循环
if divmod(10,i)[1]==0 and divmod(5,i)[1]==0:
pring(i)
break
i就是最大公约数
'''
num1 =10
num2 = 8
if num1>num2:
div_num =num2
else:
div_num = num1
for i in range(div_num,0,-1):
print(i)
if divmod(num1,i)[1] ==0 and divmod(num2,i)[1] ==0:
print("最大公约数是:",i)
break
3.求两个正整数m和n的最小公倍数
'''
最小公倍数
2个数比大小,找到两个数比较大的那一个
开始用大的数除2个数,如果都被整除了,那么这个数字就是最大公倍数
如果没有,则数字+1继续重复相同的操作,知道找到除以2个数都没有余数。
这个数字就是最大公倍数
'''
num1=10
num2=8
if num1>num2:
num=num1
else:
num=num2
while 1:
if num%num1==0 and num%num2==0:
print("最小公倍数:",num)
break
num+=1
4.输入多个数据,如果是数字就做一个累加,
如果不是,就什么都不操作
最后打印一下累加的和。
result = 0
while 1:
content = input("请输入数据:")
if str.isdigit(content):
result+=int(content)
elif content=="over":
break
print("累加的结果是:%s" %result)
result = 0
while 1:
content = input("请输入数据:")
try:
float(content)
result+=float(content)
except:
if content=="over":
break
continue
print("累加的结果是:%s" %result)
转载请注明原文地址:https://ipadbbs.8miu.com/read-64428.html