首页 > 技术文章 > 15-07-03 语句- for () 循环语句-迭代法

jia520110270 2015-07-05 21:59 原文

for()循环
for(int i=1/*初始条件*/;i<=100/*循环条件*/;i++/*状态改变*/)

四要素:初始条件,循环条件,状态改变,循环体。
执行过程:初始条件-循环条件-循环体-状态改变-循环条件....
注意:for的小括号里面分好隔开,for的小括号后不要加分号。
for可以嵌套。

应用:迭代法,穷举法

一、迭代法:有一定的规律。
每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。

例:
1.100以内所有数的和。

            int sum = 0;

            for (int i = 1; i <= 100; i++)
            {
                sum = sum + i;
            }
            Console.WriteLine("您输入的数的累加和为" + sum);

 

2、公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?

            int tz = 1;
            for (int i = 6; i >= 1; i--)
            {
                tz = (tz + 1) * 2;
            }
            Console.WriteLine("第一天的桃子总数为" + tz + "个");

 

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

            int j = 3;
            for (int i = 4; i >= 1; i--)
            {
                j = j + 2;
            }
            Console.WriteLine("第一个小朋友" + j + "岁");

 

4、一张纸厚度是0.1毫米,假设这张纸可以限次对折,问对折几次可以超过珠峰?8848米

                int a = 1;
                double z = 0.0001;

                for (int i = 1; i <= i+1; i++)
                {
                        z = z * 2;
                        if (z > 8848)
                        {  
                            a = i;
                            break;
                        }                    
                }
                Console.WriteLine("" + a + "次可以跟珠穆朗玛峰一样高");

 

5、棋盘放粮食(请在第一个格子放1粒粮食,第二个格子放2粒,第三个格子放四粒,以此类推,假如1粒粮食重量0.1克,那么棋盘30个格子的粮食一共重多少克?

                int lszl = 1;
                for (int i = 1; i < 30; i++)
                {
                    int x = 1;
                    for (int j = 1; j <= i;j++ )
                    {
                        x = x * 2;
                    }
                    lszl = lszl + x;
                }
                double zl = lszl * 0.01;
                Console.WriteLine("放满整个棋盘需要"+zl+"kg");

 

6.蓝球从5米高的地方落下,每次弹起的高度是上次的一半,问第n次弹起的高度?

               Console.WriteLine("请输入篮球弹起的次数:");
               int n = Convert.ToInt32(Console.ReadLine());
                double gd=5;
                for (int g = 1; g <=n; g++)
                {
                   gd=gd/2;
                    if (g == 5)
                    {
                        gd = 0;
                    }
                }
                Console.WriteLine("" + n + "次弹起的高度为" + gd + "");

 

推荐阅读