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

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. 一张图读懂https加密协议

    搭建CA服务器和iis启用https:http://blog.csdn.net/dier4836/article/details/7719532 一张图读懂https加密协议 https是一种加密传输 ...

  2. AngularJS API之equal比较对象

    使用情况 1 首先,所有满足 a === 3 这种的对象,在angular.equals(a,b)中都会返回真 2 所有对象的类型,以及属性值都相同的,也会返回真 3 NaN和NaN也会返回真(在ja ...

  3. hadoop之根据Rowkey从HBase中查询数据

    1.Hbase 根据rowkey 查询 conf的配置信息如下: conf = new Configuration(); conf.set("hbase.zookeeper.quorum&q ...

  4. UOJ52——【UR #4】元旦激光炮

    1.题目大意:就是给你三个数组啦,然后让你找到其中的第K大,但是,不可以直接访问数组,必须通过一种函数,最后的分数 是看调用几次这个函数,100次以内10分,2000以内6分.... 2.分析:最开始 ...

  5. 安装和配置VNC服务器的法则

    导读 这是一个关于怎样在你的 CentOS 7 上安装配置VNC服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置VNC ...

  6. 在linux下安装Python:

    # 下载最新版本 cd /usr/local/src/ sudo wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.bz2 su ...

  7. win32程序组成

    程序代码+UI资源——RC编译器整合——>EXE档案. UI资源:二进制代码(借助工具产生,并以各种扩展名的文件存在),程序员必须在资源描述文档(.rc)中描述他们. RC编译器(RC.EXE) ...

  8. angularjs的$http.jsonp跨域的用法

    var app = angular.module("app",[]); app.run(function ($rootScope,$http) { $http.jsonp(&quo ...

  9. mysql日期加减<转>

    1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select ...

  10. ssh免密码登入

    通常做许多事情(git puh/脚本等等),不停输入密码是件很不愉快的事情,破解如下: http://www.linuxproblem.org/art_9.html 1. 生成rsa密钥 ssh-ke ...