zoukankan      html  css  js  c++  java
  • C#4 for循环 迭代法 穷举法应用

     

    for()循环。

     

    四要素:

     

    初始条件,循环条件,状态改变,循环体。 执行过程:

     

    初始条件--循环条件--循环体--状态改变--循环条件....

     

    注意:for的小括号里面分号隔开,for的小括号后不要加分号。 for的嵌套。 应用:迭代法,穷举法。

     

    一、迭代法:

     

    有一定规律。 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。

     

    例: 1.100以内所有数的和。

     

    2.求阶乘

     

    3.求年龄。

     

    4.折纸。

     

    5.棋盘放粮食自己做)

     

    6.猴子吃桃子

     

    7.落球问题。(自己做)一个球从10米高度落下,每次弹起2/3的高度。问第五次弹起后的高度是多少? 8.兔子小兔子的问题。一对新生兔,到三个月开始生一对小兔,以后每个月都会生一对小兔,小兔不断长大也会生小兔。假设兔子不死,每次只能生一对(公母),问第24末有多少只兔子?

     

     

     

    二、穷举法: 用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。

     

     

     

    1.100以内的与7有关的数。

     

     

     

    2.有三种硬币若干:1分,2分,5分。要组合15,有哪些组合方式?

     

     

     

    3.买东西。小张过元旦发了100元的购物券,他要买香皂(5元),牙刷(2元),洗发水(20元)。要想把100元正好花完,如何买这三样东西?

     

     

     

    4.百鸡百钱。有100文钱,要买100只鸡回家。公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只。如何买?  百马百石。有100石粮食,母匹大马驮2石,每匹中马驮1石,每两匹小马驹一起驮1石。要用100匹马驮完100石粮食,如何按排?

     

     

     

    5.某侦察队接到一项紧急任务,要求在ABCDEF六个队员中尽可能多地挑若干人,但有以下限制条件: AB两人中至少去一人;    a+b>=1 AD不能一起去;       a+d<=1 AEF三人中要派两人去;   a+e+f==2 BC都去或都不去;      b+c!=1 CD两人中去一个;      c+d==1 D不去,则E也不去。     d+e==0||d==1 问应当让哪几个人去? 6.123()45()67()8()9=100;要求在()里面填写+-使等式成立。

     

     

     

     

     

     

     

     

    迭代

     

    //兔子生兔子   

    class Class5   wpsDF60.tmp 

    {       

    static void Main(string[] args)     

       {          

        int tu1 = 1, tu2 = 1; //tu1是倒数第一个月的兔子数,tu2是倒数第二个月的兔子数        

        int tu=0;//要求的这个月的兔子数。

                for (int i = 3; i <= 24; i++)         

       {                 tu = tu1 + tu2;              

                          tu2 = tu1;           

                          tu1 = tu;                        

         }          

      Console.WriteLine(tu);     

       }  

      }

     

     

    //求年龄:有6个小孩子排在一起,问第一个多大年龄,他说比第二个小2岁,问第二个多大年龄,他说比第三个小2岁,以此类推,问第6个多大年龄,他说自己16岁。问第一个小孩子几岁?wpsDF61.tmp
        class Class2
        {
            static void Main(string[] args)
            {
                int age = 16; //初始情况下,存的是第6个小孩子年龄,每次循环都会减2,分别代表第54321个小孩子的年龄。
                for (int i = 5; i >= 1; i--)
                {
                    age = age - 2;
                }
                Console.WriteLine(age);
            }
        }
    }

     

      //猴子吃桃子。
        //公园里有一只猴子,和一堆桃子。猴子每天吃掉桃子数量的一半,把剩下的一半数量中扔掉一个坏的。到了第7天猴了睁开眼发现只剩下一个桃子了,问原来有多。
        //190 wpsDF72.tmp
        class Class4
        {
            static void Main(string[] args)
            {
                int count = 1;
                for(int i=6;i>=1;i--)
                {
                    count = (count + 1) * 2;
                }
                Console.WriteLine(count);
            }
        }
    }

     

     

    穷举

    2.有三种硬币若干:1分,2分,5分。要组合15,有哪些组合方式?

     wpsDF92.tmp

    static void Main(string[] args)
            {
                for(int a=0;a<=15;a++) //a代表1分的硬币个数
                {
                    for(int b=0;b<=7;b++)//b代表2分的硬币个数
                    {
                        for(int c=0;c<=3;c++)//c代表5分硬币的个数
                        {
                            if(a*1+b*2+c*5 == 15)
                            {
                                Console.WriteLine("1分硬币需要"+a+"个,2分的硬币需要"+b+"个,5分的硬币需要"+c+"");
                            }
                        }
                    }
                }
            }
        }
    }

     

     

     //1. 求前100个数的和

     

    class Program

        {

                 static void Main(string[] args)

            {

                int sum = 0;

                for (int i = 1; i <= 1000; i++)

                {

                    sum = sum + i;

                }

                Console.WriteLine(sum);

            }

    }

     

     

    //4猴子吃桃子。

        //公园里有一只猴子,和一堆桃子。猴子每天吃掉桃子数量的一半,把剩下的一半数量中扔掉一个坏的。到了第7天猴了睁开眼发现只剩下一个桃子了,问原来有多。

    //190

    wpsDFA3.tmp 

        class Class4

        {

            static void Main(string[] args)

            {

                int count = 1;

                for(int i=6;i>=1;i--)

                {

                    count = (count + 1) * 2;

                }

                Console.WriteLine(count);

            }

        }

     

     

     

    //5一张纸的厚度是0.15毫米,假设这张纸足够大,可以无限次对折,问折多少次能超过珠峰的高度?

        //一张纸的厚度是0.15毫米,假设这张纸足够大,可以无限次对折,折50次高度是多少?

        class Class3

        {

            static void Main(string[] args)

            {

                double h = 0.00015;//毫米转换成米

                for (int i = 1; i <= 50; i++)

                {

                    h = h * 2;

                }

                Console.WriteLine(h);

            }

        }

     

     

    6某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:

    A和B两人中至少去一人;a+b>=1

    A和D不能一起去;a+d<=1

    A、E和F三人中要派两人去;a+e+f==2

    B和C都去或都不去;b+c!=1

    C和D两人中去一个;c+d==1

    若D不去,则E也不去。d+e==0||d==1

    问应当让哪几个人去?

     class Class7

        {

            static void Main(string[] args)

            {

                for(int a=0;a<=1;a++)

                {

                    for(int b=0;b<=1;b++)

                    {

                        for(int c=0;c<=1;c++)

                        {

                            for(int d=0;d<=1;d++)

                            {

                                for(int e=0;e<=1;e++)

                                {

                                    for(int f=0;f<=1;f++)

                                    {

     if (a + b >= 1 && a + d <= 1 && a + e + f == 2 && b + c != 1 && c + d == 1 && (d + e == 0 || d == 1))

         {

                                            Console.WriteLine("A="+a+";B="+b+";C="+c+";D="+d+";E="+e+";F="+f);

                                        }

                                    }

                                }

                            }

                        }

                    }

                }

            }

        }

     

  • 相关阅读:
    picturebox 图片自适应
    C#中如何生成矢量图
    测试ODBC与OLE
    ODBC具体使用
    C#中的OLEDB连接2
    C#中的ODBC、OLEDB连接
    c#执行并行任务之Parallel与TaskFactory
    C# 4.0 新特性之并行运算(Parallel)
    app的下载中心
    第三方库列表
  • 原文地址:https://www.cnblogs.com/981971554nb/p/4309723.html
Copyright © 2011-2022 走看看