首页 > 编程语言 >python算法:百钱买百鸡

python算法:百钱买百鸡

时间:2024-05-15 10:32:02浏览次数:31  
标签:python 百钱 小鸡 买百鸡 range print 100 com

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1 2 3 4 # 指定 start和stop # print的参数 end=" " 用来使打印不换行 for num in range(3,9):     print(num, end=" ")

运行结果:

3 4 5 6 7 8 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/13/python-suan-fa-bai-qian-mai-bai-ji/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,百钱买百鸡题目与分析

1,题目:

用一百块钱去买一百只鸡,
公鸡5块钱1只,
母鸡3块钱1只,
小 鸡1块钱3只。
请问一百块能买到公鸡,母鸡,小鸡各多少只?

2,分析:

思路:
100块钱买一种鸡最多能买多 少只?
买公鸡最多只能买20只,
母鸡能买33只,
小鸡能买300只,但鸡的数量限定在100只
公鸡数量+母鸡数量+小鸡数量 =100只。
在确定一种鸡的数量下去求另外两种鸡的数量组合。
这种穷举方式非常适合用循环 来解决

三,代码实现:

1,两层循环:

1 2 3 4 5 6 # 百钱买百鸡问题 for x in range(21):                      # 公鸡最多可以买20只     for y in range(34):                  # 母鸡最多可以买33只         z = 100 - x - y                  # 小鸡的数量等于100-x-y         if z % 3 == 0 and (5 * x + 3 * y + z // 3 == 100):             print(f'公:{x},母:{y},小:{z}')

运行结果:

公:0,母:25,小:75
公:4,母:18,小:78
公:8,母:11,小:81
公:12,母:4,小:84

2,一层循环

两次循环的性能仍然可以优化,因为有这个方程存在:

x+y+z = 100
5*x+3*y+z/3 = 100

所以我们可以通过解方程得到y与x之间的关系,
这样就可以减少一层循环

1 2 3 4 5 6 for x in range(0, 21):     y = (200 - 14 * x) / 8    # 根据解方程得到y值     if y > 0 and y == int(y):   # 如果y为正数且为整数         z = 100 - x - y     # 得到小鸡数量         if z > 0:             print(f'公:{x},母:{int(y)},小:{int(z)}')

运行结果:

公:0,母:25,小:75
公:4,母:18,小:78
公:8,母:11,小:81
公:12,母:4,小:84
 

标签:python,百钱,小鸡,买百鸡,range,print,100,com
From: https://www.cnblogs.com/architectforest/p/18193295

相关文章

  • python算法:鸡兔同笼
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法: 棋盘上的麦粒(舍罕王赏麦)
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:杨辉三角
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:n皇后
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:角谷猜想
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:水仙花数
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python: 递归函数:阶乘
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:汉诺塔
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:猴子吃桃
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:斐波那契数列
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......