• for循环练习


    羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少种买法

    解题思路

    穷举法
    先确定条件的大致范围,并在范围内挨个验证情况,
    然后根据所需要的条件过滤出所需的条件。

    羽毛球拍最多买13个,球最多买66个,水最多买100个

    方法一

        int count = 0; //循环次数
                int num = 0;  //多少种买法
                for (int i = 1; i <= 13; i++)     //羽毛球拍最多可以买多少次
                {
                    for (int j = 1; j <= 66; j++)   //球最多可以买多少次
                    {
                        for (int k = 1; k <= 100; k++)  //水最多可以买多少次
                        {
                            count++;
                            if (i * 15 + j * 3 + k * 2 == 200) //各个商品的价格相加登录总价格
                            {
                                 num++;
                                Console.WriteLine("羽毛球拍:{0},球:{1},水:{2},共有{3}次买法", i, j, k, num);
                            }
    
                        }
    
                    }
    
                }

    方法二

    比方法一效率高
    先拿着钱和羽毛球拍的价格计算最多可以买多少个羽毛球拍,
    然后拿着每个羽毛球拍的花的钱计算出球可以买多少个,
    最后拿着羽毛球拍和球花的钱计算出水可以买多少瓶水。

             int money = 200;
                int f1m = maney / 15;   
    
                for (int a = 1; a <= f1m; a++)
                {
                    int f2m = (maney - (15 * a)) / 3;
                    for (int b = 1; b <= f2m; b++)
                    {
                        int c = (maney - (15 * a + b * 3)) / 2;
                        if (a * 15 + b * 3 + c * 2 == maney)
                        {
                            num++;
                            Console.WriteLine("羽毛球拍{0},球{1},水{2},共有:{3}", a, b, c, num);
                        }
    
                    }
                }  
                    Console.ReadKey();
  • 相关阅读:
    async await异步方法的理解
    前端读取excel
    js如何实现上拉加载更多
    浅谈控制反转与依赖注入
    Java实现二叉树和遍历
    Linux生产故障排查
    排序算法之快速排序
    排序算法之堆排序
    树和二叉树知识整理
    常用的数据结构简单整理
  • 原文地址:https://www.cnblogs.com/tianranhui/p/10094608.html
Copyright © 2020-2023  润新知