for循环的应用
for循环的应用:迭代法,穷举法。
一、迭代法:(有一定规律)
每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。
例:
1.100以内所有数的和。
int sum = 0;
for (int i = 1; i <= 100;i++)
{
sum = sum + i;
}
Console.WriteLine(sum);
2.求阶乘。
int jc = 1;
for (int i=1;i<=5 ;i++ )
{
jc = jc * i;
}
Console.WriteLine(jc);
3.求年龄:有6个小孩子排在一起,第一个比第二个小2岁,第二个比第三个小2岁,第三个比第四个小2岁,第六个16岁。求第一个多少岁?
int age = 16; //初始情况下,存的是第6个小孩子年龄,每次循环都会减2,分别代表第5,4,3,2,1个小孩子的年龄。
for (int i=5;i>=1 ;i-- )
{
age = age - 2;
}
Console.WriteLine(age);
4.折纸。
double h = 0.00015;
for (int i=1;i<=10 ;i++ )
{
h = h * 2;
}
Console.WriteLine(h);
5.棋盘放粮食。
decimal a = , b = ;
for (int i=;i<= ;i++ )
{
a = a * ;
b = a + i;
}
Console.WriteLine("第64格应该放:"+b+"粒粮食");
decimal weight单=(decimal)0.00002;
decimal weight总 = weight单 * b;
Console.WriteLine("棋盘粮食一共重"+weight总+"kg");
6.猴子吃桃子。
for (int i=6;i>=1 ;i-- )
{
count = (count + 1) * 2;
}
Console.WriteLine(count);
7.落球问题:一个球从10米高度落下,每次弹起2/3的高度。问第五次弹起后的高度是多少?
8.兔子小兔子的问题。一对新生兔,到三个月开始生一对小兔,以后每个月都会生一对小兔,小兔不断长大也会生小兔。假设兔子不死,每次只能生一对(公母),问第24个月末有多少只兔子?
int tu1 = 1, tu2 = 1; //tu1是倒数第一个月的兔子数,tu2是倒数第二个月的兔子数
int tu=0; //要求的这个月的兔子数。
for (int i = 3; i <= 24; i++)
{
tu = tu1 + tu2;
tu2 = tu1;
tu1 = tu;
}
Console.WriteLine(tu);
★int 是32的位的,有时计算的数太大会超出范围,运算结果会显示是0,这时换成double计算试试。
二、穷举法:
用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。
1.找100以内的与7有关的数。
for (int a=1;a<=100 ;a++ )
{
if(a%7==0||1%7==0||a/10==7)
{
Console.WriteLine("100以内与7有关的数是"+a);
}
2.有三种硬币若干:1分,2分,5分。要组合1毛5,有哪些组合方式?
for (int a = ; a <= ; a++)
{
for (int b = ; b <= ; b++)
{
for (int c = ; c <= ; c++)
{
if (a * + b * + c * == )
{
Console.WriteLine("一分钱需要"+a+"个,二分钱需要"+b+"个,5分钱需要"+c+"个");
}
}
}
}
3.买东西。小张过元旦发了100元的购物券,他要买香皂(5元),牙刷(2元),洗发水(20元)。要想把100元正好花完,如何买这三样东西?
for (int a = ; a <= ;a++ )
{
for (int b = ; b <= ; b++)
{
for (int c = ; c <= ; c++)
{
if (a * + b * + c * == )
{
Console.WriteLine("买"+a+"块肥皂,买"+b+"个牙刷,买"+c+"支牙膏,共花费100元");
}
}
}
}
4.百鸡百钱。有100文钱,要买100只鸡回家。公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只。如何买?
百马百石。有100石粮食,母匹大马驮2石,每匹中马驮1石,每两匹小马驹一起驮1石。要用100匹马驮完100石粮食,如何按排?
for (int gj = ; gj <= ; gj++)
{
for (int mj = ; mj <= ; mj++)
{
for (int xj = ; xj <= ; xj++)
{
if (gj * + mj * + xj * 0.5 == &&gj+mj+xj==)
{
Console.WriteLine("买公鸡"+gj+"只,买母鸡"+mj+"只,买小鸡"+xj+"只");
}
}
}
}
5.某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
A和B两人中至少去一人; a+b>=1
A和D不能一起去; a+d<=1
A、E和F三人中要派两人去; a+e+f==2
B和C都去或都不去; b+c!=1
C和D两人中去一个; c+d==1
若D不去,则E也不去。 d+e==0||d==1
问应当让哪几个人去?
for(int a=;a<=;a++) //0不去,1去。
{
for(int b=;b<=;b++)
{
for(int c=;c<=;c++)
{
for(int d=;d<=;d++)
{
for(int e=;e<=;e++)
{
for(int f=;f<=;f++)
{
if (a + b >= && a + d <= && a + e + f == && b + c != && c + d == && (d + e == || d == ))
{
Console.WriteLine("A="+a+";B="+b+";C="+c+";D="+d+";E="+e+";F="+f);
}
}
}
}
}
}
}
6.123()45()67()8()9=100;要求在()里面填写+或-使等式成立。
for (int a = -; a <= ; a = a + )//-1代表减号,1代表加号 {
for(int b=-;b<=;b+=)
{
for(int c=-;c<=;c+=)
{
for(int d=-;d<=;d+=)
{
if(+a*+b*+c*+d* == )
{
Console.WriteLine("a=" + a + ";b=" + b + ";c=" + c + ";d=" + d);
}
}
}
}
}
最新文章
- sublime3 的安装
- XML dom
- 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作
- rails开发demo(一)搭建环境
- IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题
- C# DEV--DateEdit长日期
- android完全退出应用程序
- php-fpm占用系统资源分析
- Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
- pipelineDB初体验
- 怎样将Android手机弄死机?
- idea 整合ssm 启动页404问题
- 玩转3D Swiper美女性感秀之思路分析总结
- 浅谈Overload和Override
- java编程思想(1)--对象导论
- DSO windowed optimization 代码 (4)
- 开源词袋模型DBow3原理&;源码(二)ORB特征的保存和读取
- .net加载失败的程序集重新加载
- Selenium (1) —— Selenium安装与测试(101 Tutorial)
- Elasticsearch与Solr 选型