穷举 迭代 while
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.对于计算机学科的人员,无论是怎么样子的工作都是需要了解算法的-----从而获得解决日常问题的基本的思路 2.计算机底层的数理计算逻辑仍然是"与""或"&qu ...
- for循坏的穷举与迭代,while、do while循环
for循环 穷举:所有情况走一遍,使用if筛选出符合的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都 ...
- C#5 复习总结循环 迭代和穷举
一.章节复习: 循环.反复执行某段语句一种语法形式. 1.基本语法: for( 初始条件 ; 循环条件 ; 状态的改变 ) { 循环体 } 循环的四要素. 循环的执行过程.初始条件--循环条件--循环 ...
- 直接法-穷举、递推和迭代
在算法设计中,我们会遇到一些可以用直观的思维解决的问题.下面我们介绍三种基本的方法:穷举.递推和迭代. 1. 穷举法 穷举法是一种最简单的算法那设计策略,常常是直接基于问题的描述和所涉及的概念.一般来 ...
- Javascript迭代、递推、穷举、递归常用算法实例讲解
来源 | https://www.jb51.net/article/155800.htm 累加和累积 累加:将一系列的数据加到一个变量里面.最后的得到累加的结果 比如:将1到100的数求累加和 小球从 ...
- Javascript迭代、迭代、穷举、递归常用算法
累加和累积 累加:将一系列的数据加到一个变量里面.最后的得到累加的结果 比如:将1到100的数求累加和 小球从高处落下,每次返回到原来一半,求第十次小球落地时小球走过的路程 <script> ...
- 累加、迭代、递推、穷举、递归 ,等运算,笔记
8.计算 8.1累加: 累加:将一系列的数据加到一个变量里面,最后得到了累加的结果. 一般形式: 累加:V+=e: 累积:V*=e: V代表累加和累积,e代表累加累积项. 算法要点: 1. 初始 ...
- C#跳转语句 迭代法 穷举法
一.跳转语句 break & continue break:跳出循环,终止此循环,不管下面还有多少次,全部跳过. string a=" ",for (int i=1;i&l ...
- 【最优化方法】穷举法 vs. 爬山法 vs. 模拟退火算法 vs. 遗传算法 vs. 蚁群算法
一. 穷举法 列举所有可能,然后一个个去,得到最优的结果.如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解).这种算法得到的最优解肯定是最好的,但也是效率最低的.穷举法虽然能得到最好的最优 ...
最新文章
- 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏
- 2008.04.14狼图腾
- java服务写在哪里_JavaService
- Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)读后感(first pass)
- margin 0 auto 什么意思
- Servlet使用适配器模式进行增删改查案例(Emp.java)
- python图片保存重命名_Python实现重命名一个文件夹下的图片
- 什么是Hadoop,怎样学习Hadoop
- FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE
- 百度地图java批量获得经纬度_批量调用百度地图API获取地址经纬度坐标
- 制作符合期刊审图号标准的中国地图(含九段线)
- linux 刷新网络配置,3 Linux 网络配置
- STM32 CAN编程详解
- PMP 质量保证与质量控制的区别
- STL初步——集合Set
- 跑步用app轨迹画得比较准确的居然是“咕咚”
- 树莓派4b使用vncview连接报错:Cannot currently show the desktop
- Kinect坐标转换
- 时间空间复杂度(入门篇)——数据结构与算法
- 腾讯安全发布《银行业数据安全白皮书》 指明建设数据安全体系四大要素