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

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. 【AngularJS】—— 5 表单

    这部分,我们写一个表单程序,使用angularjs的检测并完成表单属性的获取与拷贝. 在AngularJS中,也支持html5中多种控件的自动检测,如:text.number.url.email.ra ...

  2. 2015多校.Zero Escape (dp减枝 && 滚动数组)

    Zero Escape Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  3. C#之正则表达式、异常处理和委托与事件

    正则表达式主要是为了处理和模式匹配复杂的字符串. int myInteger = 5; string intergerString = myInteger.ToString(); 就是将myInteg ...

  4. SpringBoot使用的心得记录

    security配置 import com.yineng.corpsysland.security.*; import com.yineng.corpsysland.web.filter.Author ...

  5. 3d回顾

    手把手教你玩转 CSS3 3D 技术   要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...

  6. html5的触摸事件

    1.触摸事件有哪些 touchstart,touchmove,touchend 2.分别什么时候触发 touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touc ...

  7. Python验证Url地址的正则表达式

    如下是django中做url验证的正则表达式: regex = re.compile( r'^(?:http|ftp)s?://' # http:// or https:// r'(?:(?:[A-Z ...

  8. OpenCV图像Canny边缘检测

    Canny边缘检测 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘函数原型:     void cvCanny(       ...

  9. WebStorm设置手机测试服务器-局域网内其他设备访问

    前端开发中,经常需要将做好的页面给其他同事预览或手机测试,之前一直用的第三方本地服务器usbwebserver,偶然了解到WebStorm内置服务器也可以满足此需求,来看看如何设置吧~~ 1.端口更改 ...

  10. Hashtable和HashMap类的区别

    Hashtable和HashMap类有三个重要的不同之处.第一个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现. ...