• 循环语句习题 20140819


    例1:百鸡百钱--一天,车夫子想用100文钱买100只鸡,卖家告知公鸡2文钱1只,母鸡1文钱1只,小鸡1文钱2只;请问在每种鸡至少买一只的情况下哪些组合方式可以刚好花完100文钱购买100只鸡?
     //公鸡i,母鸡j,小鸡k
     for (int i = 1; i < 50; i++)
    {
       for (int j = 1; j < 100; j++)
           {
              for (int k = 2; k < 100; k++)
                {
               //运算当条件满足公鸡2文钱1只+母鸡1文钱1只+小鸡1文钱2只时是否等于100文钱,并且公鸡+母鸡+小鸡的数量是否等于100只.
                   if (i * 2 + j * 1 + k * 0.5 == 100 && i + j + k == 100)
               //输出满足条件的组合方式
                   // Console.WriteLine("公鸡" + i + "只,母鸡" + j + "只,小鸡" + k + "只.");
                    Console.WriteLine("公鸡{2}只,母鸡{1}只,小鸡{0}只.", i, j, k);
                 }
            }
     }
    PS:上述使用Console.WriteLine()1公式步骤:
    A.Console.WriteLine("公鸡XX只,母鸡XX只,小鸡XX只.")
    B.用"+i+"代替XX
    Console.WriteLine()2公式解析:
    Console.WriteLine("公鸡{2}只,母鸡{1}只,小鸡{0}只.", i, j, k);--i=0,j=1,k=2

    例2:福利购物券--小张发了一张100元超市购物券,需要购买洗刷用品,购物券不找零,香皂2元1块,牙刷5元1个,洗发水15元1瓶;请问在每种洗刷用品购买一种的情况下哪些组合方式可以刚好花完100元.
    //香皂i,牙刷j,洗发水k         
      for (int i = 1; i <= 50; i++)
       {
             for (int j = 1; j < 20; j++)
          {
                 for (int k = 1; k < 7; k++)
               {
           //运算当条件满足香皂2元1块+牙刷5元1个+洗发水15元1瓶时是否等于100元钱.
                   if (i * 2 + j * 5 + k * 15 == 100 )
           //输出满足条件的组合方式
                       Console.Write("香皂" + i + "个,牙刷" + j + "个,洗发水" + k + "瓶.");
                }
            }
         }
    例3.运算出100以内的所有素数
     for (int i = 1; i <= 100; i++)//第一遍穷举,遍历1-100之间所有的值
       {
          int n = 0;//能整除i的数值的个数
          for (int j = 1; j <= i; j++)//第二遍穷举,找每个可能整除它的数
            {
              if(i%j==0)
                {
                   n++;
                 }
             }
                    if(n==2)
                    {
                        Console.Write(i+" ");
                    }
         }
    例4.运算5!
      int sum=1;
      for(int i=1;i<=5;i++)
       {
          sum=sum*i;
       }
           {
              Console.WriteLine(sum);
            }

    例5.运算5!+4!+3!+2!+1!.

        方法1: int sum = 0;
                    int jc = 1;
                    for (int i = 1; i <= 5; i++)
                    {

                        jc = jc * i;
                        sum = sum + jc;--在运算1个阶乘值之后即与第二个阶乘值相加
                    }
                    Console.WriteLine(sum );

                }

    PS:但如果是7!+5!+4!+3!+2+1!就需要按照另一种方法运算了(两个for)

    方法二:

    {

    int sum = 0;
                for (int a = 1; a <= 5; a++)--把5到1遍历
                {
                    int jc = 1;
                    for (int i = 1; i <= a; i++)
                        jc = jc * i;
               
                sum=(sum + jc);

                //Console.WriteLine(jc);--5到1每个数值的阶乘
                }
                Console.WriteLine(sum);--输出5到1的阶乘和

    }

  • 相关阅读:
    配置本地光盘为yum源
    几个精彩的DMV
    单用户模式下连接被占用定位spid
    SQLServer 使用smb存放数据文件
    安装第三方库出现 Python version 2.7 required, which was not found in the registry
    windows环境下Django安装配置
    复制 replication 新增表 add new article
    SQL Server session故障排查
    倒车入库方法
    侧方停车方法
  • 原文地址:https://www.cnblogs.com/DORCASQING/p/3923734.html
Copyright © 2020-2023  润新知