• C# for循环


    循环:反复执行某段代码。
    循环四要素:初始条件,循环条件,循环体,状态改变。
    for(初始条件;循环条件;状态改变)
    {
     循环体
    }


    break ——中断循环,跳出循环
    continue——停止本次循环,进入下次循环

    for循环拥有两类:


    穷举:
    把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

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

    for循环练习

               打印20遍你好

                for (int i = 1; i <= 10; i++)
                {   if (i == 6)
                    {
                        continue;//结束本次循环,继续下次循环
                    }
                    Console.WriteLine("你好!");
                }

             输入一个整数,计算从1加到这个数的结果            

              Console.Write("请输入一个正整数:");             
    
               int a = int.Parse(Console.ReadLine());
    
               int sum = 0;//0加上任何数都不会变化             
    
               for (int i = 1; i <= a; i++)            
    
               {                
    
                  sum += i;//sum=sum+i;
    
               }             
    
              Console.WriteLine(sum);

            输入一个正整数,求这个数的阶乘       

             Console.Write("请输入一个正整数:");             
    
             int a = int.Parse(Console.ReadLine());
    
             int sum = 1;            
    
             for (int i = 1; i <= a; i++)           
    
              {                 
    
                  sum *= i;//sum=sum*i;  
    
              }             
    
             Console.WriteLine(sum);

           找出100以内的与7有关的数,打印出来。7的倍数,个位数是7,十位数是7

            int a = 0;//标记变量
            for (int i = 100; i >= 1; i--)
            {
                 if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
                 {
                     a++;
                     Console.WriteLine(i);
                 }
             }
             Console.WriteLine("总共"+a);

            一个游戏,前20关是每一关自身的分数,21-30关每一关是10分,31-40关,每一关是20分,41-49关,每一关是30分,50关,是100分。输入你现在闯到的关卡数,求你现在拥有的分数
            两种做法:if嵌套for    for嵌套if

               方法一:

                Console.Write("请输入您现在所闯到的关卡数:");
                int a = int.Parse(Console.ReadLine());
                int sum = 0;
                if (a >= 1 && a <= 50)
                {
                    if (a >= 1 && a <= 20)
                    {
                        for (int i = 1; i <= a; i++)
                        {
                            sum += i;
                        }
                    }
                    else if (a >= 21 && a <= 30)
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= a; i++)
                        {
                            sum += 10;
                        }
                    }
                    else if (a >= 31 && a <= 40)
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }
                        for (int i = 31; i <= a; i++)
                        {
                            sum += 20;
                        }
                    }
                    else if (a >= 41 && a <= 49)
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }
                        for (int i = 31; i <= 40; i++)
                        {
                            sum += 20;
                        }
                        for (int i = 41; i <= a; i++)
                        {
                            sum += 30;
                        }
                    }
                    else
                    {
                        for (int i = 1; i <= 20; i++)
                        {
                            sum += i;
                        }
                        for (int i = 21; i <= 30; i++)
                        {
                            sum += 10;
                        }
                        for (int i = 31; i <= 40; i++)
                        {
                            sum += 20;
                        }
                        for (int i = 41; i <= 49; i++)
                        {
                            sum += 30;
                        }
                        sum += 100;
                    }
                }
                else
                {
                    Console.WriteLine("输入有误!");
                }
                Console.WriteLine("总分为:" + sum);

                方法二:

                Console.Write("请输入现在闯到的关卡数:");
                int a = int.Parse(Console.ReadLine());
                int sum = 0;
                if (a >= 1 && a <= 50)
                {
                    for (int i = 1; i <= a; i++)
                    {
                        if (i >= 1 && i <= 20)
                        {
                            sum += i;
                        }
                        else if (i >= 21 && i <= 30)
                        {
                            sum += 10;
                        }
                        else if (i >= 31 && i <= 40)
                        {
                            sum += 20;
                        }
                        else if (i >= 41 && i <= 49)
                        {
                            sum += 30;
                        }
                        else
                        {
                            sum += 100;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("输入有误!");
    
                Console.WriteLine(sum);

     for嵌套练习

             输入一个整数,求1!+2!+...+n!            

             Console.Write("请输入一个正整数:");             
    
              int a = int.Parse(Console.ReadLine());             
    
              int sum = 0;
    
              for (int i = 1; i <= a; i++)            
    
              {                
    
                 int sum1 = 1;                 
    
                 for (int j = 1; j <= i; j++)               
    
                 {                    
    
                    sum1 *= j;              
    
                 }               
    
                 sum += sum1;            
    
            }
    
            Console.WriteLine(sum);

                打印三角形
     

               int aa = 0;
                for (int i = 1; i <= 5; i++)
                {
                    for (int j = 1; j <=5; j++)
                    {
                        aa++;
                        Console.Write("");
                    }
                    Console.WriteLine();
                }
                Console.WriteLine(aa);
                Console.ReadLine();

               打印直角在右下角的三角形
     

               for (int i = 1; i <= 5; i++)
                {
                    for (int j = 4; j >= i; j--)
                    {
                        Console.Write("  ");
                    }
                    for (int k = 1; k <= i; k++)
                    {
                        Console.Write("");
                    }
                        Console.WriteLine();
                }

        

               输入一个整数,求这个数的和、阶乘
     

               Console.Write("请输入一个正整数:");
                int a = int.Parse(Console.ReadLine());
                int sum = 1;
                for (int i = 1; i <= a; i++)
                {
                    sum *= i;
                }
                Console.WriteLine(sum);

                99口诀表

                for (int i = 1; i <= 9; i++)
                {
                    for (int j = 1; j <= i; j++)
                    {
                        Console.Write(j + "*" + i + "=" + (i * j) + "	");
                    }
                    Console.WriteLine();
                }
                Console.Write("请输入一个正整数:");            
    
                int a = int.Parse(Console.ReadLine());
    
                for (int i = 1; i <= a; i++)            
    
                {                 
    
                  for (int j = 1; j <= i; j++)                 
    
                  {                     
    
                     Console.Write("");                 
    
                   }                
    
                   Console.WriteLine();            
    
                }

    for穷举和迭代练习


                单位给发了一张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);

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

    方法一:

                int a = 7;//884800000
                int i = 1;
                for (;; i++;)
                {
                    a *= 2;//a=a*2;
                    if (a >= 884800000)
                    {
                        Console.WriteLine(i);
                        Console.WriteLine(a);
                        break;
                    }
                }

    方法二:

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

                 兔子生兔子问题,一开始只有1对幼兔
                问第几个月的时候有多少对兔子,分别多少对
                小兔=上月幼兔
                成兔=上月小兔+上月成兔
                幼兔=本月成兔

                Console.Write("请输入第几个月的时候:");
                int yue = int.Parse(Console.ReadLine());
                if (yue > 0)
                {
                    int cheng=0; int xiao=0; int you=0; int zong=0;
                    for (int i = 1; i <= yue; i++)
                    {
                        if (i == 1)
                        {
                            cheng = 0;
    
                            xiao = 0;
                            you = 1;
                            zong = 1;
                        }
                        else
                        {
                            cheng = xiao + cheng;
                            xiao = you;
                            you = cheng;
                            zong = cheng + xiao + you;
                        }
                    }
    
                    Console.WriteLine(""+yue+"个月时,总共有"+zong+"对兔子,成兔"+cheng+"对,小兔"+xiao+"对,幼兔"+you+"对。");
                }
                else
                {
                    Console.WriteLine("输入有误!");
                }

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

                int a = 0;
                for (int gong = 0; gong <= 50;gong++ )
                {
                    for (int mu = 0; mu <= 100;mu++ )
                    {
                        for (int xiao = 0; xiao <= 200;xiao++ )
                        {
                            if((gong*2+mu*1+xiao*0.5==100)&&mu+xiao+gong==100)
    
                            {
                                a++;
    
                               Console.WriteLine("" + a + "种买法" + "公鸡" + gong + "" + "母鸡" + mu + "" + "小鸡" + xiao+ "");
    
                             }                                             
    
                         }                
    
                     }            
    
                 }
    
                 Console.WriteLine(a);

         

  • 相关阅读:
    事件的解密
    C#世界中的委托
    这次是C#中的接口
    完全二叉树的建立和翻转
    全排列的应用
    网易笔试-按位或运算
    柱状图的最大矩形--单调栈
    Linux将线程绑定到CPU内核运行
    Windows多线程与线程绑定CPU内核
    B+树介绍
  • 原文地址:https://www.cnblogs.com/yy01/p/5269085.html
Copyright © 2020-2023  润新知