九、两类for循环

(一)穷举

1、格式

 for (初始条件;循环条件 ;循环改变)
{
for (初始条件;循环条件;循环改变)
{
for (初始条件;循环条件;循环改变)
{
if (判断条件)
{
Console.WriteLine(……);
}
}
}
}

其本质就是for虚幻嵌套。

2、例题

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

主要代码:

 int c = 0;
int s = 0;
for (int x = 0; x <= 10; x++)
{
for (int y = 0; y <= 30; y++)
{
for (int z = 0; z <= 75; z++)
{
s++;
if (15 * x + 5 * y + 2 * z == 150)
{
c++;
Console.WriteLine("第{0}中买法能买{1}瓶洗发水,{2}支牙刷,{3}块香皂。", c, x, y, z);
}
}
}
}
Console.WriteLine("共有{0}种买法,只有{1}种买法符合要求。", s, c);
Console.ReadLine();

结果:

2.2.百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下(每种鸡至少有1只)刚好花完100文钱?

主要代码:

int c1 = 0;
int s1 = 0;
for (int g = 1; g < 50; g++)
{
for (int m = 1; m < 100; m++)
{
for (int x = 1; x < 200; x++)
{
s1++;
if (g + m + x == 100 && 2 * g + 1 * m + 0.5 * x == 100)
{
c1++;
Console.WriteLine("第{0}中买法能买{1}只公鸡,{2}只母鸡,{3}小鸡。", c1, g, m, x);
}
}
}
}
Console.WriteLine("共有{0}种买法,只有{1}种买法符合要求。", s1, c1);
Console.ReadLine();

结果:

2.3.大马驼2石粮食,中等马驼1石粮食,两头小马驼1石粮食,要用100匹马,驼100石粮食,该如何分配?

主要代码:

int c = 0;
int s = 0;
for (int d = 0; d <= 100; d++)
{
for (int z = 0; z <= 100; z++)
{
for (int x = 0; x <= 200; x++)
{
s++;
if (2 * d + 1 * z + 0.5 * x == 100 && d + z + x == 100)
{
c++;
Console.WriteLine("第{0}中驼法能用{1}匹大马,{2}匹中马,{3}匹小马。", c, d, z, x);
}
}
}
}
Console.WriteLine("共有{0}种驼法,只有{1}种驼法符合要求。", s, c);
Console.ReadLine();

结果:

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

主要代码:

 int c = 0;
int s = 0;
for (int i = 0; i <= 20; i++)
{
for (int j = 0; j <= 10; j++)
{
for (int k = 0; k <= 4; k++)
{
s++;
if (i + 2 * j + 5 * k == 20)
{
c++;
Console.WriteLine("第{0}中组合方式需要{1}个1分钱,{2}个2分钱,{3}个5分钱。", c, i, j, k);
}
}
}
}
Console.WriteLine("共有{0}种组合方式,只有{1}种方式符合要求。", s, c);
Console.ReadLine();

结果:

(二)迭代

1、定义

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

2、例题

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

主要代码:

 int a =3;
for (int b = 5; b > 1; b--)
{
a += 2;
}
Console.WriteLine("第一个小孩的年龄为{0}岁。",a);
Console.ReadLine();

结果:

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

主要代码:

int c = 0;
double h = 0.07;
while (h <= 8848000)
{
h *= 2;
c++;
}
Console.WriteLine("需要对折{0}次。",c);
Console.ReadLine();

结果:

(三)附加题

求输入一个100以内的数的累加和,输入错了继续输入直到输入正确为止。

主要代码:

 while (true)
{
Console.Write("请输入:");
int n = int.Parse(Console.ReadLine());
if (n >= 0 && n <= 100)
{
int s = 0;
for (int i = 0; i <= n; i++)
{
s += i;
}
Console.WriteLine(s);
}
}
Console.ReadLine();

结果:

两类for循环的更多相关文章

  1. delphi 创建DBASE和FOXPRO两类DBF数据文件的差异

    delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self.Table1.Close; Self.Table1.Active ...

  2. Java 网络编程(二) 两类传输协议:TCP UDP

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951841.html 两类传输协议:TCP,UDP TCP TCP是Transfer C ...

  3. MT【284】构造函数的导数的两类题型

    第一类: 已知定义在$R$上的奇函数$f(x),f(-1)=0,$当$x>0$时,$xf^{'}(x)-f(x)<0,$则$f(x)>0$的解集为____ 第二类: 已知函数$f(x ...

  4. js中两种for循环的使用

    针对两种for循环的使用 1. for in循环的使用环境     可用在字符串.数组.对象中, 需注意:其中遍历对象得到的是每个key  的value值  2. for 变量递加的方式        ...

  5. 什么是UML?分哪两类?

    统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言.UML为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言 ...

  6. 【Python】两个for循环嵌套练习

    要求:取下方篮框中内容并写入csv文件中.用两个for循环将每一行取出来作为一个元素存放到新数组中. # coding=utf-8 from selenium import webdriver fro ...

  7. Spring Cloud的子项目,大致可分成两类

    Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目:第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cl ...

  8. java中方法的控制修饰符也分为:可访问控制符和非访问控制符两类。

    3 .方法的控制修饰符也分为:可访问控制符和非访问控制符两类. 可访问控制符有 4 种:公共访问控制符: public :私有访问控制符: private :保护访问控制符: protected :私 ...

  9. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

随机推荐

  1. 802.11 ------ Beacon帧、Beacon Interval、TBTT、Listen Interval、TIM、DTIM

    Beacon帧:Beacon的实际发送一般都是采用最低速率的,其包含两个原因,1)beacon帧是一个广播帧,其没有ACK反馈,所以无法设置重传机制,2)beacon帧目的是广播AP的基本信息,所以希 ...

  2. P3014 [USACO11FEB]牛线Cow Line && 康托展开

    康托展开 康托展开为全排列到一个自然数的映射, 空间压缩效率很高. 简单来说, 康托展开就是一个全排列在所有此序列全排列字典序中的第 \(k\) 大, 这个 \(k\) 即是次全排列的康托展开. 康托 ...

  3. Ubuntu下配置支持Windows访问的Samba共享

    一.安装Ubuntu samba服务器 $ sudo apt-get install samba $ sudo apt-get install smbclient # Linux客户端测试用 二.创建 ...

  4. 【整理】HTML5游戏开发学习笔记(1)- 骰子游戏

    <HTML5游戏开发>,该书出版于2011年,似乎有些老,可对于我这样没有开发过游戏的人来说,却比较有吸引力,选择自己感兴趣的方向来学习html5,css3,相信会事半功倍.不过值得注意的 ...

  5. [转载]WCF和ASP.NET Web API在应用上的选择

    http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html http://msdn.microsoft.com/en-us/libra ...

  6. python json dumps loads

    请看以上图片可知 1. python requests里面返回的是json 字符串, 说白了是字符串.不能直接取里面对应的值. 2. 取值的话,需要把json字符串转换成字典, 用json.loads ...

  7. 2016-2017-20155329 《Java程序设计》第7周学习总结

    学号 2016-2017-20155329 <Java程序设计>第7周学习总结 教材学习内容总结 时间的度量 格林威治标准时间(GMT时间) 世界时(UT) 国际原子时(TAI) 世界协调 ...

  8. SQL查找数据库中所有没有主键的数据表脚本

    --SQL查找数据库中所有没有主键的数据表脚本 --运行脚本后在消息中可能会显示下面现象中的一种:--(1)数据库中所有数据表都有主键(则证明所有数据表都有主键)--(2)当前数据表[数据表名]没有主 ...

  9. caffe设计网络教程(一)

    假设现在我们要设计一个基于VGG的网络,主要考虑的问题是可否修改VGG类似于resnet那样,应该怎么修改?更具体来说,我们需要在VGG网络上考虑eltwise层,现在我们有三种方案,如下: 方案一: ...

  10. Entity Framework(EF的Model First方法)

    EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架.同其它ORM(如,NHibernate,Hibernate)一样, 一是为了使开 ...