码迷,mamicode.com
首页 > 其他好文 > 详细

循环语句(2)

时间:2016-03-10 23:42:50      阅读:548      评论:0      收藏:0      [点我收藏+]

标签:

for的嵌套

            //99乘法表
            for (int a = 1; a <= 9; a++)-----控制行
            {
                for (int i = 1; i <= a; i++)------控制列
                {
                    Console.Write(i + "*" + a + "=" + (a * i) + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadLine();    

结果

技术分享

打印星号
            //直角在左上
            for (int i = 5; i >= 1; i--)
            {
                for (int j = 1; j <= i; j++)//j<i,刚开始j<5,打出来是个正方形的,和上面的i没有关联上。
                {
                    Console.Write("");
                }
                Console.WriteLine();

            }

            Console.ReadLine();

技术分享

           //打印星号,直角在左下
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("");
                }
                Console.WriteLine();
            }
            Console.ReadLine();

技术分享

直角在右边之后就有点难了。我就晕了。

            //直角在右上
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 2; j <= i; j++)------条件时常会搞错
                {
                    Console.Write("  ");-------两个空格是一个字符,空出位置来
                }
                for (int t = 5; t >= i; t--)
                {
                    Console.Write("");
                }
                Console.WriteLine();-------换行,打下一行
            }
            Console.ReadLine();

技术分享

            //直角在右下
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 4; j >= i; j--)
                {
                    Console.Write("  ");
                }
                for (int t = 1; t <= i; t++)
                {
                    Console.Write("");
                }
                Console.WriteLine();
            }
            Console.ReadLine();

技术分享

穷举:

            //穷举:
            //把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。
            //单位给发了一张150元购物卡,
            //拿着到超市买三类洗化用品。
            //洗发水15元,香皂2元,牙刷5元。
            //求刚好花完150元,有多少种买法,
            //每种买法都是各买几样?
            //设洗发水x             150/15==10
            //牙刷y                   150/5==30
            //香皂z                   150/2==75
            int biao = 0;
            int sum = 0;
            for (int x = 0; x <= 10; x++)
            {
                for (int y = 0; y <= 30; y++)
                {
                    for (int z = 0; z <= 75; z++)
                    {
                        sum++;
                        if (x * 15 + y * 5 + z * 2 == 150)
                        {
                            biao++;
                            Console.WriteLine("这是第" + biao + "种买法:洗发水" + x + "瓶,牙刷" + y + "支,香皂" + z + "块。");
                        }
                    }
                }
            }
            Console.WriteLine("共有" + biao + "种买法!");
            Console.WriteLine(sum);

            Console.ReadLine();

羽毛球拍15元每支,球3元每个,水2元每瓶,200元每种至少一个,有多少种可能。

只买球拍最多13支,设为x。

球最多66个,设数量为y。

水最多100瓶,设为z。

15x+3y+2z=200.

            int m = 0;
            
            for (int x = 1; 15 * x<=200; x++)
            {
                for (int y = 1; 3 * y <= 200; y++)
                {
                    for (int z = 1; 2 * z <= 200; z++)
                    {
                        if(15*x+3*y+2*z==200)
                        {
                            m++;
                            Console.WriteLine(x+"支拍子"+y+"个球"+z+"瓶水。");
                        }
                    }
                }                 
            }
            Console.WriteLine("一共"+m+"种买法。");
            Console.ReadLine();

百鸡百钱:公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡,有多少种可能性。

设公鸡x只,母鸡y,小鸡z

2x+y+0.5z=100&&x+y+z=100-----这是条件

            int m = 0;
            for (int x=1;x<=50 ;x++ )
            {
                for (int y = 1; y <= 100; y++)
                {
                    for (int z = 1; z <= 200; z++)
                    {
                        if(2*x+y+0.5*z==100&&x+y+z==100)
                        {
                            m++;
                        }
                    }
                }
            }
            Console.WriteLine("一共" + m + "种买法。");
            Console.ReadLine();
            //迭代:
            //从初始情况按照规律不断求解中间情况,最终推导出结果。

            //纸张可以无限次对折,纸张厚度为0.07毫米。
            //问多少次对折至少可以超过8848?
            int a = 7;//884800000
            int i = 1;
            for (;; )
            {
                a *= 2;//a=a*2;
                if (a >= 884800000)
                {
                    Console.WriteLine(i);
                    Console.WriteLine(a);
                    break;
                }
                i++;
            }
            while(true)
            {
                a *= 2;

                if (a >= 884800000)
                {
                    Console.WriteLine(i);
                    Console.WriteLine(a);
                    break;
                }
                i++;
            }

 

循环语句(2)

标签:

原文地址:http://www.cnblogs.com/zhaimiaoer/p/5263805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!