九、两类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. Hadoop基础-Apache Avro串行化的与反串行化

    Hadoop基础-Apache Avro串行化的与反串行化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Apache Avro简介 1>.Apache Avro的来源 ...

  2. Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

    Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...

  3. appium 使用过程问题踩坑-笔记

    问题1:虚拟设备选用问题 运行脚本抛出异常,创建session对象失败 排查过程:在进入cmd模式下: ①adb devices   --ok ②appium-doctor  --ok ③appium ...

  4. What Does “Neurons that Fire Together Wire Together” Mean?

    What Does “Neurons that Fire Together Wire Together” Mean? I’ve heard the phrase “neurons that fire ...

  5. 谁说码农不懂浪漫?(js写的'老婆生日快乐'特效)

    一直被老婆抱怨不懂浪漫,老婆的生日又来了,老婆指着闺蜜空间上贴的老公做的胡萝卜心形浪漫晚餐告诉我:必须送她一份用心的礼物.我绞尽脑汁想出这么一法子,还是得用我们码农的独特方式,经过一天多的努力,终于做 ...

  6. Redis(Remote Dictionary Server)入门

    说说特性 存储结构:键值对支持多种数据类型,包括字符串类型,散列类型,列表类型,集合类型,有序集合类型. 内存存储与持久化:支持将内存中的数据异步写入磁盘中. 丰富的功能:支持为每个键值对设置生存时间 ...

  7. 训练赛第三场A题 zoj 559

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2559 解题报告:比赛的时候的想法是可以确定至少有两对相切的圆,所 ...

  8. UNIX环境高级编程 第10章 信号

    SIGSTOP和SIGKILL区别是:前者是使进程暂时停止,即中止,也就是说使进程暂停,将进程挂起,比如你在终端里面执行一个脚本或者程序,执行到一半,你想暂停一下,你按下ctrl+z,就会导致终端发送 ...

  9. python——脚本和print

    脚本和print 1.脚本文件 <Python 基础教程>(第二版)中 P118页,原操作为下: 1 _metaclass_ = type 2 3 class Person: 4 def ...

  10. Hibernate5笔记5--关联关系映射

    关联关系映射: 关联关系,是使用最多的一种关系,非常重要.在内存中反映为实体关系,映射到DB中为主外键关系.实体间的关联,即对外键的维护.关联关系的发生,即对外键数据的改变. 外键:外面的主键,即,使 ...