《妙趣横生的算法》第10章 算法设计与数据结构面试精粹之常见的算法设计题10-10(question?)

本文介绍了一道算法设计题,涉及到如何计算使用苹果、橘子、香蕉、菠萝、梨五种水果制作出每盘含有三种不同水果的拼盘的所有可能方案。通过穷举法和三重循环实现,程序会输出所有符合条件的拼盘组合并计数。
摘要由CSDN通过智能技术生成

        【例10-10】有苹果、橘子、香蕉、菠萝、梨这5种水果,已知每个果盘中一定有3种水果,并且3种水果的种类各不相同。编程计算可以制作出多少种水果拼盘。

         【分析】

           本题最容易最直观的解法就是使用穷举法。如果用3种变量x、y、z表示每一种果盘中的3种水果,用常量1~5分别表示拼过、橘子、香蕉、菠萝、梨这5种水果,将1~5分别复制给变量x、y、z,每一种赋值表示一种装盘方法,那么不难想象共有5exp3(5的3次方)种装盘方案。这5exp3种装盘方案构成了本题的解空间。但是5exp3种方案并不全是答案,因为题目要求每个果盘中3种水果的种类各不相同,因此需要添加约束条件x!=y!=z。这样就很容易得到解决本题的算法。

fruitPlate()
{
    int x,y,z,count=0;
    for(x=1;x<=5;x++)
        for(y=1;y<=5;y++)
            for(z=1;z<=5;z++)
            {
                if(x!=y && y!=z && x!=z)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值