所有循环  必要条件 :   初始条件(注意初始条件的位置)   循环条件   循环体   状态改变;

1.穷举

  将所有可能性全部全部走一遍,使用IF筛选出满足的情况

使用循环语句    for   或者  while 语句   do 。。。while   语句  中间嵌套  if 语句

举例

1,

穷举:将所有可能性全部走一遍,使用if筛选出满足的情况
            单位给发了一张150元购物卡,
            拿着到超市买三类洗化用品。
            洗发水15元,香皂2元,牙刷5元。
            求刚好花完150元,有多少种买法,
            每种买法都是各买几样?
            洗发水   x     0~10
            牙刷      y     0~30
            香皂      z     0~75
            int biao = 0;
            int zong = 0;
            for (int x = 0; x <= 10;x++ )                                 //for循环嵌套for循环, 最后用if 筛选出满足条件的情况;
            {
                for (int y = 0; y <= 30;y++ )
                {
                    for (int z = 0; z <= 75;z++ )
                    {
                        zong++;
                         if(x*15+y*5+z*2==150)
                         {
                             biao++;
                             Console.WriteLine("第{0}种买法:洗发水{1}瓶,牙刷{2}支,香皂{3}块。",biao,x,y,z);
                         }
                    }
                }
            }
            Console.WriteLine("总共有"+biao+"种买法。");
            Console.WriteLine("总共走了"+zong+"遍才找到了"+biao+"种符合的情况。");

2.迭代

  从初始情况按照规律不断求解中间情况,最终推导出结果。

举例:

   (1)
            第一天1分钱,第二天2分钱,第三天4分钱,以此类推
            40天
            问,总共收了多少钱?
            double sum = 0;
            double qian = 1;
            for (int i = 1; i <= 40;i++ )
            {
                if (i == 1)
                {
                    sum += qian;
                }
                else
                {
                    qian *= 2;
                    sum += qian;
                }
            }
            Console.WriteLine("总共接收了"+(sum/100)+"元。");

(2)

Console.Write("请输入月份:");

int m = int.Parse(Console.ReadLine());

int a = 10, b = 10, c = 1;

int sum = a + b + c;

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

{                 if (i == 1)

{                     a = 0;

b = 0;

c = 1;

sum = a + b + c;

}

else

{

a = b + c;

b = c;

c = a;

sum = a + b + c;                 }

}

Console.WriteLine("在{0}个月后,共有成兔{1}对,小兔{2}对,幼兔{3}对,共{4}对", m, a, b, c, sum);

Console.ReadLine();

3.while循环
  格式1:先判断,在做  (初始条件)+while(表达式(循环条件)){循环体+状态改变}
  格式2:先做,在判断 (初始条件)+ do{循环体+状态改变}while(表达式(循环条件));

 

打印菱形

Console.Write("输入行数n:");
            int n = int.Parse(Console.ReadLine());
            int h1 = 1;//第1行赋值;
            while(h1<=n)
            {  int i=1;//第一列赋值
                while(i<=n-h1)
            {
               Console.Write("  ");
                    i++;
            }
                int j=1;
                while(j<=2*h1-1)
                {
                    Console.Write("★");
                    j++;
                }
           
                Console.Write("\n");
                h1++;
            }
            int h2 = 1;//下三角第一行赋值;
            while (h2 < n)
            {
                int k = 1;//第一列赋值
                while (k <= h2)
                {
                    Console.Write("  ");
                    k++;
                }
                int l = 1;
                while (l <= 2 * (n - h2) - 1)
                {
                    Console.Write("☆");
                    l++;
                }

Console.Write("\n");
                h2++;
            }
            Console.ReadLine();

3.随笔(最重要的是前后知识联系起来,无外乎是嵌套   循环 分支)

循环语句 1.与分支语句 相互嵌套   2. 循环语句嵌套循环语句   3.分支语句套分支  //   做题方法

4.写程序时 注意多加注释  方便以后再看懂,   5.分析问题时,用草纸亲自打个草稿!

6.    分析问题时注意寻找规律,充其量就是变量和自变量关系,最多就是多套几个循环或者分支语句,每套一个,总的自变量就可以视为少一个!

    1. 复杂的问题,可以拆分成几个来找规律,最后能合并则合并,例如:打印菱形;
    2. 找出特例:其他的可以用规律写出来,例如上面兔子的问题,第一个月为特例,则先列出来;
    3. 思考问题,灵活,未必顺着题目来,也可能逆着来思考

例如(

五个小朋友排成一队,问第一个多大了,       
            第一个说比第二个大两岁,问第二个多大了,
            第二个说比第三个大两岁。。。
             以此类推,问第5个小朋友,说自己3岁了。
            问第一个小朋友几岁了?
            int s=3 ;
            for (int i = 1; i <5;i++ )                        //把最后一个小朋友看作是第一个小朋友  逆着做题;
            {
                
                    s += 2;
                
            }
            Console.WriteLine(s);

也可能从中间向两端思考,还可能拆分成几个来思考(打印菱形)。

穹举,迭代,while循环。的更多相关文章

  1. for循环的嵌套,for循环的穷举迭代

    for循环的嵌套            输入一个正整数,求阶乘的和 嵌套            Console.Write("请输入一个正整数:");            int ...

  2. C# 循环语句 for循环(嵌套 while 穷举 迭代)

    for循环的嵌套类似于if else 事例: 打印矩阵,外循环对应行,内循环对应列 for (int k = 1; k <= 5; k++) { for (int i = 1; i <= ...

  3. for 穷举、迭代 while循环

    1.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 2.百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100 ...

  4. 循环语句while与for的穷举迭代

    循环语句while while当...的时候 int n=1; while(n<6)//在括号内直接限制逻辑关系 {//需要在大括号内给出改变方式,否则将进入死循环 console.WriteL ...

  5. 穷举 迭代 while

    for循环拥有两类: 穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 例:1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花 ...

  6. Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).

    Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 1.1. 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. ...

  7. 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate)的区别

    表示“重复”这个含义的词有很多, 比如循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称 ...

  8. [Effective JavaScript 笔记]第50条:迭代方法优于循环

    "懒"程序员才是好程序员.复制和粘贴样板代码,一但代码有错误,或代码功能修改,那么程序在修改的时候,程序员需要找到所有相同功能的代码一处处进行修改.这会使人重复发明轮子,而且在别人 ...

  9. Day 13 可迭代对象,迭代器对象,for循环迭代,生成器对象,枚举对象

    一.迭代器概念:# 器:包含了多个值的容器# 迭代:循环反馈(一次从容器中取出一个值)# 迭代器:从装有多个值的容器中一次取出一个值给外界# ls = 'abcdef'ls = [1, 2, 3, 4 ...

随机推荐

  1. golang笔记——IDE

    可选方案有 Lite IDE\GoSublime\Visual Studio Code\Goclipse\Vim 1.Lite IDE 这是国人开发的开源且跨平台的 golang 专属IDE,也算是目 ...

  2. 微信或移动端网页的meta

    针对微信: <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> ...

  3. Slave_SQL_Running: No mysql同步故障解决方法

    Slave_SQL_Running: No mysql同步故障解决      今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave s ...

  4. 你真的懂了R中的stem函数是如何绘制茎叶图的么?

    本文原创,转载请注明出处,本人Q1273314690(交流学习)   哭晕 你真的学会了stem()函数了吗? stem()函数的使用方法是: stem(x, scale=1,width=80, at ...

  5. URL、Session、Cookies、Server.Transfer、Application和跨页面传送,利弊比较

    URL.Session.Cookies.Server.Transfer.Application和跨页面传送.-本题考查面试者对ASP.NET中多页面传值的理解是否全面.因为ASP.NET的页面表单提交 ...

  6. STM32F10xx CAN BUS相关库文件"stm32f10x_can.c"内的库函数解析

    一.背景: 还是继续CAN通信,要节省开发时间,使用库函数可大大降低开发周期,并且还能确保寄存器的配置几 乎是万无一失,所以,在此就STM32F10xx的CAN操作库函数的使用做个简析. STM32有 ...

  7. Mysql InnoDB行锁实现方式

    Mysql InnoDB行锁实现方式 InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的.InnoDB这种行锁实现特点 ...

  8. 《深入浅出WPF》笔记三

    1.Field:字段,封装在类中的变量. Method:方法,封装在类中的函数. 成员:类中的字段和方法,可分为静态成员和非静态成员. 静态字段在内存中只有一份拷贝. 非静态字段是每个实例拥有一个拷贝 ...

  9. 4 个最好的 Linux 引导程序

    导读 当你打开你的机器,开机自检(POST)成功完成后,BIOS(基本输入输出系统)立即定位所配置的引导介质,并从 MBR(主引导记录)或 GUID(全局唯一标识符)分区表读取一些命令,这是引导介质的 ...

  10. [KOJ6997]旅行商问题二

    [COJ6997]旅行商问题二 试题描述 Bob是一名旅行商,Bob同时也是一个哲学家,他深知到了一个地方就要掏出钱包把所有景点都玩到.一个城市有N个景点,其中N-1条无向道路链接成一个连通图.Bob ...