zoukankan      html  css  js  c++  java
  • 迭代法,穷举法及其练习题

    总结:
    1、基本语法:
    数据类型,类型转换,输入输出,运算符(条件运算符) ? :

    2、分支语句:
    有选择性的执行某行或某段代码
    if ... else if ... else... --最主要,必须要记住并且灵活运用
    switch ... case ... default... --看到要明白什么意思

    分支嵌套:在符合一定条件的基础上继续判断其它条件

    3、循环语句:
    循环四要素:初始条件,循环条件,循环体,状态改变
    for() //最常用,最好用,最清晰,最灵活
    {

    }
    必须记住,掌握,灵活运用

    while() //不够清晰
    {

    }

    foreach() //遍历,数组,集合(泛型集合)
    {

    }

    循环的嵌套:
    一般只需要套两层循环就足够了,外面的循环走一遍,里面的循环会走一整遍

    -------------------------------------------------------------------
    !!!!中间变量的运用,要灵活掌握
    -------------------------------------------------------------------

    迭代法:
    每次循环都要把某一个或多个变量不断放大,为的是下一次循环可以继续使用,最后达到最终的大小。
    代表性的题:
    1、累加求和
    2、阶乘
    3、折纸
    int sum = 0;
    for(int i=1;i<=10;i++)
    {
    sum += i;
    }

    穷举法:
    将所有的可能性都走一遍,然后判断符合条件的可能性,单独拿出来。
    基本用法:
    int count = 0;
    for (int i = 1; i <= 15; i++) //1分的硬币
    {
        for (int j = 1; j <= 7; j++)//2分的硬币
        {
            for (int u = 1; u <= 3; u++) //5分的硬币
            {
                 if (i + (j * 2) + (u * 5) == 15) //判断这种可能性的硬币够不够15分
                 {
                      Console.WriteLine("1分的需要" + i + "个,2分的需要" + j + "个,5分的需要" + u + "个");
                      count++;
                 }
            }
        }
    }

    Console.WriteLine("总共有" + count + "种可能性!");
    -------------------------------------------------------------------------------------------------
    穷举练习题:
    1、有三种硬币若干个,1分,2分,5分,如果要凑够1毛5,有哪些组合方式?
    扩展:三种硬币最少都要有一个

                int count = 0;
                //若初始条件 int i = 1/int j = 1/int h = 1 ,
                //代表每一种价值的硬币在组合中必须有一个。
                for (int i = 0; i <= 15; i++)
                {
                    for (int j = 0; j <= 7; j++)
                    {
                        for (int h = 0; h <= 3; h++)
                        {
                            if (i + (j * 2) + (h * 5) == 15)
                            {
                                Console.WriteLine("一分的需要" + i + "个,两分的需要" + j + "个,五分的需要" + h + "个。");
                                count++;
                            }
                        }
                    }
                }
                Console.WriteLine("符合要求的可能性有" + count + "种。");

    2、小张过年发了100元购物券,他要买香皂(5元),牙刷(2元),洗发水(20元),想要正好把100元花完,有几种购买组合?

                int a = 0;
                for (int i = 0; i <= 50; i++)
                {
                    for (int j = 0; j <= 20; j++)
                    {
                        for (int k = 0; k <= 5; k++)
                        {
                            if ((i * 2) + (j * 5) + (k * 20) == 100)
                            {
                                Console.WriteLine("小张可以买到" + i + "块香皂," + j + "只牙刷," + k + "瓶洗发水。");
                                a++;
                            }
                        }
                    }
                }
                Console.WriteLine("符合条件的可能性有" + a + "种。");

    3、百鸡百钱,有100文钱,要买100只鸡回家。公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,该如何买?

                int a = 0;
                for (int i = 0; i <= 50; i++)
                {
                    for (int j = 0; j <= 100; j++)
                    {
                        for (int k = 0; k <= 200; k++)
                        {
                            if ((i * 2) + j + (k * 0.5) == 100)//k*0.5 不可以写作 k/2 ! 因其中的0.5必须是固定的
                            {
                                if (i + j + k == 100)
                                {
                                    Console.WriteLine("公鸡" + i + "只,母鸡" + j + "只,小鸡" + k + "只。");
                                    a++;
                                }
                            }
                        }
                    }
                }
                Console.WriteLine("一共有" + a + "");

  • 相关阅读:
    Java I/O的典型使用方式
    搜索--hiho 骑士问题
    编程之美--水王(找出出现超过1/2的数)
    深入理解java虚拟机之类文件结构以及加载
    【转载】Java JVM 运行机制及基本原理
    整数的划分总结(转)
    java静态方法和非静态方法
    mongodb 运行错误总结
    MongoDb windows环境安装,附百度云链接
    JAVA解析Json数据
  • 原文地址:https://www.cnblogs.com/123lucy/p/5523271.html
Copyright © 2011-2022 走看看