假设法
方程解法
设鸡有x只,兔有y只
分析
实现
for i in range(1,36):
chicken=i
rabbit=35-i
if chicken*2+rabbit*4==94:
print("鸡的数量为:",i)
print("兔子的数量为:",35-i)
#运行结果
#鸡的数量为: 23
#兔子的数量为: 12
使用str.format()的形式即可,str可以替换成任意字符串
print("{},{}".format("hello","world"))
# 运行结果:
# hello,world
还可以通过设置参数的方式来进行替换
print("name:{name},age:{age}".format(name="siqu",age=32))
# 运行结果:
# name:siqu,age:32
还可以通过设置参数的方式来进行替换
print("name:{name},age:{age}".format(name="siqu",age=32))
# 运行结果:
# name:siqu,age:32
有了format之后,我们就可以采用新的方式来输出我们运算出来的结果了
for i in range(1,36):
chicken=i
rabbit=35-i
if chicken*2+rabbit*4==94:
print("鸡的数量:{},兔子的数量为:{}".format(i,35-i))
#运行结果
#鸡的数量:23,兔子的数量为:12
import time
start=time.time()
head=3500000 #表示有多个头
foot=9400000 #表示有多少个脚
for i in range(1,head+1):
chicken=i
rabbit=head-i
if chicken*2+rabbit*4==foot:
print("鸡的数量:{},兔子的数量为:{}".format(i,head-i))
end=time.time()
print("运行的时间为:{}".format(end-start))
#运行结果
# 鸡的数量:2300000,兔子的数量为:1200000
# 运行的时间为:2.151245355606079
我们在算出结果后就不需要继续循环了
比如当head等于35,foot等于94时,我们总共需要循环35次,但是当i=23的时候,我们就没有必要在继续循环了,因为我们已经找到了正确答案
import time
start=time.time()
head=3500000 #表示有多个头
foot=9400000 #表示有多少个脚
for i in range(1,head+1):
chicken=i
rabbit=head-i
if chicken*2+rabbit*4==foot:
print("鸡的数量:{},兔子的数量为:{}".format(i,head-i))
break
end=time.time()
print("运行的时间为:{}".format(end-start))
#运行结果
# 鸡的数量:2300000,兔子的数量为:1200000
# 运行的时间为:1.456103801727295
我国古代数学家张丘建在《算经》一书中提出了一个数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
翻译成现代文:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡、母鸡、小鸡都必须要有。问公鸡、母鸡、小鸡要买多少只刚好凑足100文钱?(注:可能有多种符合条件的方案,请全部列出)
for x in range(1,99): #设公鸡有x只,由于三种鸡都要有,因此最大只能到98
#设母鸡有y只,母鸡和小鸡总共有100-i只,但是小鸡也有,所以母鸡最多99-i
for y in range(1,100-x):
z=100-y-x
if x*5+y*3+z/3==100:
print("公鸡有:{},母鸡有:{},小鸡有:{}".format(x,y,z))
# 运算结果:
# 公鸡有:4,母鸡有:18,小鸡有:78
# 公鸡有:8,母鸡有:11,小鸡有:81
# 公鸡有:12,母鸡有:4,小鸡有:84
找零钱:现有人民币面额为1元、2元和5元的币种若干张。给你n (1≤n ≤ 250)元,让你计算换成上面这些面额表示,且总数不超过100 张,共有几种方案。比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。
提示:可以使用整除运算
money=int(input("请输入币值:"))
#记录方案数
count=0
for x in range(money//5+1):
#要用剩下来的钱进行计算
for y in range((money-5*x)//2+1):
z=money-5*x-2*y
print("需要{}张五元,需要{}张两元,需要{}张一元".format(x,y,z))
count+=1
print("共有{}种方案".format(count))