zoukankan      html  css  js  c++  java
  • C#for循环——迭代法、穷举法

    C#for循环——迭代法、穷举法

    for()循环。
    四要素:初始条件,循环条件,状态改变,循环体。

    执行过程:初始条件--循环条件--循环体--状态改变--循环条件....
    注意:for的小括号里面分号隔开,for的小括号后不要加分号。
    for的嵌套应用:迭代法,穷举法。

    一、迭代法:有一定规律。

    每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。
    例:
    1.100以内所有数的和。

    int sum = 0;
    for (int i = 1; i <= 100; i++)
    {
    sum = sum + i;
    }
    Console.WriteLine("求和结果:"+sum+"");

    2.求阶乘

    int jieCheng = 1;
    for (int i = 5; i >= 1; i--)
    {
    jieCheng = jieCheng * i;
    }
    Console.WriteLine("5!=" + jieCheng);


    3.求年龄。

    int age = 16;
    for (int i = 5; i >= 1; i--)
    {
    age = age - 2;
    }
    Console.WriteLine("第一个孩子的年龄是" + age + "岁");


    4.折纸。

    double h_Zong, h_DanZhang = 0.0002;
    int zhangShu = 1;
    for (int i = 30; i >= 1; i--)
    {
    zhangShu = zhangShu * 2;
    }
    h_Zong = zhangShu * h_DanZhang;
    Console.WriteLine("折叠30次后,高度是" + h_Zong + "米");


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

    decimal shuMu = 1, sum = 1;
    for (int i = 1; i < 64; i++)
    {

    shuMu = shuMu * 2;
    sum = sum + shuMu;
    }
    decimal w_danWei = (decimal)0.000026;
    decimal w_ZongZhong = sum * w_danWei;
    Console.WriteLine("棋盘粮食总共:" + w_ZongZhong + "Kg");


    6.猴子吃桃子

    int day = 6, n = 1;
    for (; day >= 1; day--)
    {
    n = 2 * (n + 1);
    }
    Console.WriteLine("原来桃子总共有" + n + "个");


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

    double h = 10;
    for (int i = 5; i >= 1; i--)
    {
    h = h * 2 / 3;
    }
    Console.WriteLine("球第五次弹起时高度是" + h + "米");


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

    int sum = 0, tu1 = 1, tu2 = 1;
    for (int i = 22; i >= 1; i--)
    {
    sum = tu1 + tu2;
    tu1 = tu2;
    tu2 = sum;
    }
    Console.WriteLine("24月末共有" + sum + "只兔子");

    二、穷举法:

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

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


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

    for (int a = 0; a <= 15; a++)
    {
    for (int b = 0; b <= 7; b++)
    {
    for (int c = 0; c <= 3; c++)
    {
    if (a * 1 + b * 2 + c * 5 == 15)
    {
    Console.WriteLine("1分硬币:" + a + "个2分硬币" + b + "个3分硬币" + c + "个");
    }
    }
    }
    }

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

    for (int i = 0; i <= 20; i++)
    {
    for (int j = 0; j <= 50; j++)
    {
    for (int m = 0; m <= 5; m++)
    {
    if (5 * i + 2 * j + 20 * m == 100)
    {
    Console.WriteLine("香皂:"+i+"牙刷:"+j+"洗发水:"+m);
    }
    }
    }
    }


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

    for (int i = 0; i <= 50; i++)
    {
    for (int j = 0; j <= 100; j++)
    {
    for (int m = 0; m <= 200; m++)
    {
    if (2 * i + j + 0.5 * m == 100 && i + j + m == 100)
    {
    Console.WriteLine("公鸡" + i + "母鸡" + j + "小鸡" + m);
    }
    }
    }
    }


    百马百石。有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 > 0 && a + d != 2 && a + e + f == 2 && b + c != 1 && c + d == 1 && d >= e)
    {
    Console.WriteLine("A" + a + "B" + b + "C" + c + "D" + d + "E" + e + "F" + f);
    }
    }
    }
    }
    }
    }
    }


    6.123()45()67()8()9=100;要求在()里面填写+或-使等式成立。

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

    }

  • 相关阅读:
    Jenkins配置基于角色的项目权限管理--转
    linux下ssh/scp无密钥登陆方法
    Jenkins+Maven+Git CI环境搭建手册
    Linux操作系统下的Sudo命令
    使用secureCRT远程Linux,出现远程主机拒绝连接
    解决SecureCRT连接linux超时后断开
    使用git整体流程
    JAVA Map集合类简介
    几个经常用到的字符串的截取(java)
    maven
  • 原文地址:https://www.cnblogs.com/wllhq/p/4182722.html
Copyright © 2011-2022 走看看