for循环拥有两类:穷举和迭代
穷举:
把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

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

 int sum = ;//共走了多少步
int s = ;//共有几种买法
for (int x = ; x <= ;x++ )
{
for(int y=;y<=;y++)
{
for (int z = ; z <= ;z++ )
{
sum++;
if(x*+y*+z*==)
{
s++;
Console.WriteLine("这是第"+s+"种买法:"+"洗发水"+x+"瓶,香皂"+y+"块,牙刷"+z+"支.");
}
} }
}
Console.WriteLine("一共"+s+"种买法.");
Console.WriteLine(sum);
Console.ReadLine();

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

int sum = ;
int s = ;
for(int x=;x*<=;x++)
{
for(int y=;y*<=;y++)
{
for (int z = ; z*0.5 <= ;z++ )
{
sum++;
if(x*+y*+z*0.5==&&x+y+z==)
{
s++;
Console.WriteLine("这是第"+s+"种买法:公鸡"+x+"只,母鸡"+y+"只,小鸡"+z+"只");
}
}
}
}
Console.WriteLine("共有"+s+"种买法.");
Console.WriteLine(sum);
Console.ReadLine();

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

 int s = ;
for(int x=;x*<=;x++)
{
for(int y=;y<=;y++)
{
for (int z = ; z*0.5 <= ;z++ )//不能写成z/2<=100;
{
if(x*+y*+z*0.5==&&x+y+z==)
{
s++;
Console.WriteLine("这是第"+s+"种分配方法:"+x+"匹大马,"+y+"匹中等马,"+z+"匹小马.");
}
}
}
}
Console.WriteLine("共有"+s+"种分配方法.");
Console.ReadLine();

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

            int s = ;
int sum = ;
for (int x = ; x <= ; x++)
{
for (int y = ; y <= ; y++)
{
for (int z = ; z <= ; z++)
{
sum++;
if (x + y * + * z == )
{
s++;
Console.WriteLine("这是第" + s + "种组合方式:1分钱" + x + "枚,2分钱" + y + "枚,5分钱" + z + "枚.");
}
}
}
}
Console.WriteLine("共有" + s + "种组合方式");
Console.WriteLine(sum);
Console.ReadLine();

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

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

int age = ;
int i = ;
for (; ; )
{
age += ;
if(i==)
{
Console.WriteLine("第五个小朋友"+age+"岁了.");
break;
}
i++;
}
Console.ReadLine();

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

int a = ;////统一单位
int i = ;
for (; ; )//
{
a *= ;//a=a*2;
if (a >= )
{
break;//满足条件后跳出for循环
}
i++;
}
Console.WriteLine("对折"+i+"次可超过8848米");
Console.WriteLine("此时纸张厚度为:"+a+"毫米");
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++);
}

如上题可用while循环:

             int a = ;
int i = ;
while(true)
{
a *= ;
if(a>=)
{
break;
}
i++;
} Console.WriteLine("对折" + i + "次可超过8848米");
Console.WriteLine("此时纸张厚度为:" + a + "毫米");
Console.ReadLine();

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

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

最新文章

  1. Gulp自动添加版本号(转载)
  2. Uml学习-用例建模简介
  3. Python3学习(二)-递归函数、高级特性、切片
  4. Oracle的sqlnet.ora与password文件试验
  5. PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
  6. Hibernate从入门到精通(十一)多对多双向关联映射
  7. ImageView的Scaletype
  8. ORA-06550:line 1,column 7;PLS-00201:indentifer &#39;存储过程&#39; must be declared;...PL/SQL Statement ignored 问题
  9. STM32系统时钟
  10. 商派shopex
  11. PHP数据访问易错点(20161030)
  12. 初探linux子系统集之led子系统(一)
  13. iOS dispatch_semaphore_t(信号量)和 2.dispatch_group_t (组)
  14. Java基础高级部分(一)
  15. 数字证书及CA的扫盲介绍
  16. locked (a oracle.jdbc.driver.T4CConnection
  17. ios开发之--开发中可能会用到的一些函数
  18. 题目1144:Freckles(最小生成树进阶)
  19. Java8 Map的遍历方式
  20. wamp 安装monggo扩展

热门文章

  1. rsync详解之exclude排除文件(转)
  2. iOS项目开发之实现无限轮播
  3. UITextView 设置边框
  4. 自定义ListView和GridView
  5. 如何从一个1G的文件中找到你所需要的东西
  6. python常见面试题(二)
  7. Atitit。Time&#160;base&#160;gc&#160;垃圾&#160;资源&#160;收集的原理与设计
  8. hdu 1598 find the most comfortable road(并查集)
  9. MyBatis_传入参数的问题
  10. 44.Android MD5Util