• 循环语句(2)


    for的嵌套

                //99乘法表
                for (int a = 1; a <= 9; a++)-----控制行
                {
                    for (int i = 1; i <= a; i++)------控制列
                    {
                        Console.Write(i + "*" + a + "=" + (a * i) + "	");
                    }
                    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++;
                }
  • 相关阅读:
    Python 存储引擎 数据类型 主键
    Python 数据库
    Python 线程池进程池 异步回调 协程 IO模型
    Python GIL锁 死锁 递归锁 event事件 信号量
    Python 进程间通信 线程
    Python 计算机发展史 多道技术 进程 守护进程 孤儿和僵尸进程 互斥锁
    Python 异常及处理 文件上传事例 UDP socketserver模块
    Python socket 粘包问题 报头
    Django基础,Day7
    Django基础,Day6
  • 原文地址:https://www.cnblogs.com/zhaimiaoer/p/5263805.html
Copyright © 2020-2023  润新知