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

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. Supervisor 安装与配置

    Supervisor是一个进程监控程序. 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  2. Reading Famous blog to prevent me wasting time on blind wandering

    I can`t help surfing the useless bbs and some other kind of SNS. The time I begin to do it, it costs ...

  3. nyoj 14 会场安排问题(贪心专题)java

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  4. Hadoop 之面试题

    颜色区别: 蓝色:hive,橙色:Hbase.黑色hadoop 请简述hadoop怎样实现二级排序. 你认为用Java,Streaming,pipe 方式开发map/reduce,各有哪些优缺点: 6 ...

  5. Mac Pro 安装 Adobe Photoshop CC for mac V2014 破解版

    一.下载 Photoshop CC for mac V2014 原版(.dmg 文件): 百度网盘下载1 百度网盘下载2 百度网盘下载3 百度网盘下载4 百度网盘下载5 百度网盘下载6 百度网盘下载7 ...

  6. Linux文件处理命令

    1.权限处理 1.1 方法一 使用+-=的方法 1.1.1权限 rwx r 读 w 写 x 执行 1.1.2用户 ugoa u 所有者 g 用户组 o 其他人 a 表示以上所有 修改文件的方法 例: ...

  7. HDU 1232 并查集/dfs

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=1232 我的第一道并查集题目,刚刚学会,我是照着<啊哈算法>这本书学会的,感觉非常通俗易懂,另 ...

  8. Codeforces 271 Div 2 A Keyboard

    题目链接:http://codeforces.com/contest/474/problem/A 解题报告:一个矩形的键盘,上面只有规定的字符,现在按的时候总是会向某个方向按偏,也就是输入一串字符后, ...

  9. BZOJ4525——[Usaco2016 Jan]Angry Cows

    1.题意:给一堆可以的限制长度的区间...区间的长度是你控制的...但是只有一个长度...求最短长度覆盖所有的点 2.分析:发现可以二分...那二分吧.....然后我们从头向后扫一遍直接判断能否直接覆 ...

  10. Vim编辑器运用的五个技巧

    导读 如今 Vim 是每个人最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.大多数人只是熟悉Vim的最最基本的操作,只能在终端使用 Vim 修改文本,但是它并没有任何一个我想 ...