100个python算法超详细讲解:换分币 您所在的位置:网站首页 想换5角硬币 100个python算法超详细讲解:换分币

100个python算法超详细讲解:换分币

2024-07-16 15:49| 来源: 网络整理| 查看: 265

1.问题描述 将5元的人民币兑换成1元、5角和1角的硬币,共有多少种不同的 兑换方法。 2.问题分析 根据该问题的描述,可将该问题抽象为一个不定方程。 设变量x、y和z分别代表兑换的1元、5角和1角的硬币所具有的钱 数(角),则由题目的要求,可得到如下的方程: x+y+z=50 其中,x为兑换的1元硬币钱数,其可能的取值为 {0,10,20,30,40,50};y为兑换的5角硬币钱数,其可能的取值为 {0,5,10,15,20,25,30,35,40,45,50};z为兑换的1角硬币钱数,其可能的取 值为{0,1,…50}。 3.算法设计 在问题分析中,我们得到了一个不定方程,显然该不定方程会有 多组解。根据题意可知x、y和z的可能取值,将它们所有可能取值的组 合代入方程中,能使该方程成立的那些解即为该问题的解。 为实现该功能,需要使用三个嵌套的for循环语句。 4.确定程序框架 程序流程图如图2.21所示。

5.完整的程序 根据上面的分析,编写程序如下:

#!/usr/bin/python3 # -*- coding: utf-8 -*- # @author : liuhefei # @desc: 换分币 if __name__=="__main__": # 变量x、y和z分别代表兑换的1元、5角和1角的硬币所具有的钱数(角) count = 0 # 计数器 print("可能的兑换方法如下:") # x 为兑换的1元硬币钱数,可能的取值为{0,10,20,30,40,50} for x in range(0, 50+1, 10): # y为5角硬币钱数,其取值为{0,5,10,15,20,25,30,35,40,45,50} for y in range(0, 50-x+1, 5): # z为1角硬币钱数,其取值为{0,1,...50} for z in range(0, 50-x-y+1, 1): if(x + y + z == 50): count += 1 if count % 3 == 0: # 每3列一行 print(count, end=" ") print("10*%d+5*%d+1*%d \t" % (x // 10, y // 5, z)) else: print(count, end=" ") print("10*%d+5*%d+1*%d \t" % (x // 10, y // 5, z), end=" ")

 6.运行结果 在PyCharm下运行程序,结果如图2.22所示。由输出结果可知,可 能的兑换方法有36种。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有