• C#(4)—for语句的应用:迭代法与穷举法


    for()循环。
    四要素:初始条件,循环条件,状态改变,循环体。
    执行过程:初始条件--循环条件--循环体--状态改变--循环条件....
    注意:for的小括号里面分号隔开,for的小括号后不要加分号。
    for的嵌套。
    应用:迭代法,穷举法。
    一、迭代法:有一定规律。
    每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。
    例:
    1.100以内所有数的和。

    2.求阶乘
    3.求年龄。
    4.折纸。

    double a = 0.01;
    for(int i=1;i<=50;i++)
    {
    a = 2 * a;
    }
    Console.WriteLine(a);


    5.棋盘放粮食( 自己做)

    long a=1;
    long sum =-1;

    for(int i=1;i<=64;i++)
    {
    a = a* 2;
    sum = sum + a;

    }
    Console.WriteLine(sum);


    6.猴子吃桃子

    int a=1;
    for (int i = 6; i >= 1;i-- )
    {
    a = (a + 1) * 2;

    }
    Console.WriteLine(a);


    7.落球问题。(自己做)一个球从10米高度落下,每次弹起2/3的高度。问第五次弹起后的高度是多少?

    double d=10;
    for (int i = 1; i <= 5;i++ )
    {
    d = d * 2 / 3;
    }
    Console.WriteLine(d);


    8.兔子小兔子的问题。一对新生兔,到三个月开始生一对小兔,以后每个月都会生一对小兔,小兔不断长大也会生小兔。假设兔子不死,每次只能生一对(公母),问第24末有多少只兔子?

    int tu1 = 1;
    int tu2 = 1;
    int tu = 0;

    for (int i = 3; i <= 24; i++)
    {
    tu = tu1 + tu2;
    tu2 = tu1;
    tu1 = tu;
    }
    Console.WriteLine(tu);

    二、穷举法:
    用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。
    1.找100以内的与7有关的数。

    for (int i = 0; i <= 100; i++)
    {
    if(i%7==0||i%10==7||i%10==7)
    {
    Console.Write(i+" ");
    }


    2.有三种硬币若干:1分,2分,5分。要组合1毛5,有哪些组合方式?
    3.买东西。小张过元旦发了100元的购物券,他要买香皂(5元),牙刷(2元),洗发水(20元)。要想把100元正好花完,如何买这三样东西?

    for(int x=1;x<=20;x++)
    {
    for(int y=1;y<=50;y++)
    {
    for (int z =1; z<= 5;z++ )
    {
    if(5*x+2*y+20*z==100)
    {
    Console.WriteLine("香皂买"+x+"件,"+"牙刷买"+y+"件,"+"洗刷水买"+z+"件。");

    }
    }

    }

    }


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

    for(int a=0;a<=50;a++)
    {
    for(int b=0;b<=100;b++)
    {
    for (int c = 0; c <= 100;c++ )
    {
    if((2*a+1*b+0.5*c==100)&&(a+b+c==100))
    {
    Console.WriteLine("公鸡"+a+"只,"+"母鸡"+b+"只,"+"小鸡"+c+"只。");
    }
    }
    }

    }


    百马百石。有100石粮食,母匹大马驮2石,每匹中马驮1石,每两匹小马驹一起驮1石。要用100匹马驮完100石粮食,如何按排?
    5.某侦察队接到一项紧急任务,要求在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
    问应当让哪几个人去?

    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);
    }
    }
    }
    }
    }
    }
    }


    6.123()45()67()8()9=100;要求在()里面填写+或-使等式成立。//把+、-变成-1和+1来看。

    for(int a=1;a>=-1;a-=2)
    {
    for(int b=1;b>=-1;b-=2)
    {
    for(int c=1;c>=-1;c-=2)
    {
    for (int d = 1; d >= -1;d-=2 )
    {
    if(123+a*45+b*67+c*8+d*9==100)
    {
    Console.WriteLine("a="+a+",b="+b+",c="+c+",d="+d);
    }
    }

    }
    }
    }

  • 相关阅读:
    kafka原理深入研究 (转 )
    redis——持久化篇
    IDEA 配置环境和相关工具整理(新手入门)
    Spring Data JPA(官方文档翻译)
    springboot:spring data jpa介绍
    JDK8-十大新特性-附demo
    JDK8新特性一览
    Maven中的pom.xml配置文件详解
    数据库面试题(更新中...)
    互联网协议系列
  • 原文地址:https://www.cnblogs.com/Claires/p/4182650.html
Copyright © 2020-2023  润新知