求两个数的最大公约数和最小公倍数(辗转相除法)
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
if a < b: #如果a<b则将a,b两数调换使大数作为被除数
a, b = b, a
t = a % b #大数除小数得一个余数赋给t
p = a * b #将两数的乘积赋给p
while t != 0:
a = b # 当余数不为0时,将b赋给a
b = t #将余数赋给b
t = a%b #继续将a除以b的余数赋给t
print( "相除法得最大公约数为:", b ) #当余数为0时,输出b即为最大公约数
print( "相除法得最小公倍数:", int(p/b) ) #用两数乘积除以最大公约数即为最小公倍数
运行结果
用1.2.3.4.5这五个数字能组成多少个不同的三位数
tar = [1, 2, 3, 4, 5];
cnt = 0 #对结果进行计数
for i in range(len(tar)): #确定百位数字
t1=tar.copy() #操作临时变量,防止改变tar的值,影响下次循环
x=str(t1.pop(i)) #取出指定的i位置的数字作为百位数字
for j in range(len(t1)): #确定十位数字
t2=t1.copy() #如上,防止改变t1,影响下次循环
y=str(t2.pop(j))
for k in range(len(t2)): #确定个位数字
print(x+y+str(t2[k]), end=' ')
cnt += 1
print('')
print("结果是:{}个".format(cnt))
运行结果
随机产生100个整数(0-100),放入一个列表中,统计每个数字出现的次数,结果用字典保存。
# 1.存放随机数列表
number = []
# 2.循环100次
for i in range(0, 100):
# 3.生成随机数
num = random.randint(0,100)
# 4.添加到列表中
number.append(num)
# 5.统计每一个数字出现的次数
result = {}
# 5.1 把数字作为key,出现的次数作为值
# 循环遍历每一个数字
for num in number:
# 判断字典中是否有num这个key
if num in result.keys():
# 让数字对应的次数+1
result[num] += 1
else:
# 以数字作为key,值为1次
result[num] = 1
print(result)
运行结果
统计字符串中每个字符的个数,并写入字典
strin = input("请输入一个字符串:")
result={}
for i in strin:
result[i] = strin.count(i)
print(result)
运行结果