for循环拥有两类:

穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

例:1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品。洗发水15元,香皂2元,牙刷5元。求刚好花完150元,有多少种买法,没种买法都是各买几样?

//洗发水 x  10
         //牙刷    y  30
         //香皂    z  75
            int ci = 0;
            int biao = 0;
            for (int x = 0; x <= 10; x++)
            {
                for (int y = 0; y <= 30; y++)
                {
                    for (int z = 0; z <= 75; z++)
                    {
                        ci++;
                        if (15 * x + y * 5 + z * 2 == 150)
                        {
                            biao++;
                            Console.WriteLine("第{0}种买法:洗发水{1}瓶,牙刷{2}支,香皂{3}块。", biao, x, y, z);
                        }
                    }
                }
            }
            Console.WriteLine("总共有{0}种买法。", biao);
            Console.WriteLine(ci);
            Console.ReadLine();

2.百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?同百马百担

int n = 0;
            for (int g = 0; g * 2 <= 100; g++)
            {
                for (int m = 0; m <= 100; m++)
                {
                    for (int x = 0; x * 0.5 <= 100; x++)
                    {
                        if (g * 2 + m + x * 0.5 == 100 && g + m + x == 100)
                        {
                            Console.WriteLine("第{0}种:{1}只公鸡,{2}只母鸡,{3}只小鸡", n, g, m, x);
                            n++;
                        }
                    }
                }
            }
            Console.WriteLine("总共有{0}种可能性", n);
            Console.ReadLine();

3.有1分钱,2分钱,5分钱的硬币,要组合出来2角钱,有几种组合方式,分别各多少个?

    int n = 0;
            for (int a = 0; a * 1 <= 20; a++)
            {
                for (int b = 0; b*2 <= 20; b++)
                {
                    for (int c = 0; c *5 <= 20; c++)
                    {
                        if (a * 1 + b*2 + c * 5 == 20)
                        {   
                            n++;
                            Console.WriteLine("第{0}种:{1}枚1分钱,{2}枚2分钱,{3}枚5分钱", n, a, b, c);
                         }
                    }
                }
            }
            Console.WriteLine("总共有{0}种可能性", n);
            Console.ReadLine(); 

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

例:1.五个小朋友排成一队,问第一个多大了,第一个说比第二个大两岁,问第二个多大了,第二个说比第三个大两岁。。。以此类推,问第5个小朋友,说自己3岁了。

问第一个小朋友几岁了?

int n = 1;
            int a = 3;
            while (n < 5)
            {
                a += 2;
                n++;
            }
            Console.WriteLine("第一个小朋友{0}岁了", a);
            Console.ReadLine();

2.纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?

double height = 0.07;//8848m=8848000
            int ci = 0;
            while (height <= 8848000)
            {
                ci++;
                height *= 2;//height=height*2;
            }
            Console.WriteLine(ci);
            Console.ReadLine();

while 循环

其实是for循环的变形写法
for(int i = 1; i<=5;i++)
{
 循环体;
}

上面的for循环可以写成
int i= 1;
for(;i<=5;)
{
 循环体;
 i++;
}

写成while就是以下样式
int i= 1;
while(表达式(i<=5))
{
 循环体;
 状态改变(i++);
}

do
{
 循环体;
 状态改变(i++);
}while(表达式(i<=5))
注意:do while是不管满不满足表达式,我都会先执行一遍。

跳转语句:
break:跳出整个循环
continue:跳出本次循环,继续下次循环。

转载于:https://www.cnblogs.com/yp11/p/5827520.html

穷举 迭代 while相关推荐

  1. 《数据科学家养成手册》第十一章------算法学1(穷举,分治,回溯,贪心,迭代)

    1.对于计算机学科的人员,无论是怎么样子的工作都是需要了解算法的-----从而获得解决日常问题的基本的思路 2.计算机底层的数理计算逻辑仍然是"与""或"&qu ...

  2. for循坏的穷举与迭代,while、do while循环

    for循环 穷举:所有情况走一遍,使用if筛选出符合的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都 ...

  3. C#5 复习总结循环 迭代和穷举

    一.章节复习: 循环.反复执行某段语句一种语法形式. 1.基本语法: for( 初始条件 ; 循环条件 ; 状态的改变 ) { 循环体 } 循环的四要素. 循环的执行过程.初始条件--循环条件--循环 ...

  4. 直接法-穷举、递推和迭代

    在算法设计中,我们会遇到一些可以用直观的思维解决的问题.下面我们介绍三种基本的方法:穷举.递推和迭代. 1. 穷举法 穷举法是一种最简单的算法那设计策略,常常是直接基于问题的描述和所涉及的概念.一般来 ...

  5. Javascript迭代、递推、穷举、递归常用算法实例讲解

    来源 | https://www.jb51.net/article/155800.htm 累加和累积 累加:将一系列的数据加到一个变量里面.最后的得到累加的结果 比如:将1到100的数求累加和 小球从 ...

  6. Javascript迭代、迭代、穷举、递归常用算法

    累加和累积 累加:将一系列的数据加到一个变量里面.最后的得到累加的结果 比如:将1到100的数求累加和 小球从高处落下,每次返回到原来一半,求第十次小球落地时小球走过的路程 <script> ...

  7. 累加、迭代、递推、穷举、递归 ,等运算,笔记

    8.计算 8.1累加: 累加:将一系列的数据加到一个变量里面,最后得到了累加的结果. 一般形式: 累加:V+=e: 累积:V*=e: V代表累加和累积,e代表累加累积项. 算法要点: 1.    初始 ...

  8. C#跳转语句 迭代法 穷举法

    一.跳转语句 break & continue break:跳出循环,终止此循环,不管下面还有多少次,全部跳过. string a=" ",for (int i=1;i&l ...

  9. 【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法

    一. 穷举法 列举所有可能,然后一个个去,得到最优的结果.如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解).这种算法得到的最优解肯定是最好的,但也是效率最低的.穷举法虽然能得到最好的最优 ...

最新文章

  1. 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏
  2. 2008.04.14狼图腾
  3. java服务写在哪里_JavaService
  4. Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)读后感(first pass)
  5. margin 0 auto 什么意思
  6. Servlet使用适配器模式进行增删改查案例(Emp.java)
  7. python图片保存重命名_Python实现重命名一个文件夹下的图片
  8. 什么是Hadoop,怎样学习Hadoop
  9. FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE
  10. 百度地图java批量获得经纬度_批量调用百度地图API获取地址经纬度坐标
  11. 制作符合期刊审图号标准的中国地图(含九段线)
  12. linux 刷新网络配置,3 Linux 网络配置
  13. STM32 CAN编程详解
  14. PMP 质量保证与质量控制的区别
  15. STL初步——集合Set
  16. 跑步用app轨迹画得比较准确的居然是“咕咚”
  17. 树莓派4b使用vncview连接报错:Cannot currently show the desktop
  18. Kinect坐标转换
  19. 时间空间复杂度(入门篇)——数据结构与算法
  20. 腾讯安全发布《银行业数据安全白皮书》 指明建设数据安全体系四大要素

热门文章

  1. 1.2 决策树代码实现
  2. log4j 调试时候配置
  3. Java 中的位移运算符
  4. 《网站安全攻防秘笈》摘录
  5. SpringMVC学习笔记
  6. Python collection模块
  7. 《剑指offer》孩子们的游戏---约瑟夫问题
  8. 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
  9. 机器学习入门04-线性回归原理与java实现多元线性回归
  10. mysql中一条SQLupdate语句是如何执行的?redo log 与binlog