博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环语句习题 20140819
阅读量:5354 次
发布时间:2019-06-15

本文共 1764 字,大约阅读时间需要 5 分钟。

例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+"\t");
                }
     }
例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的阶乘和

}

 

转载于:https://www.cnblogs.com/DORCASQING/p/3923734.html

你可能感兴趣的文章
java中new一个对象和对象=null有什么区别
查看>>
字母和数字键的键码值(keyCode)
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
Spring mvc初学
查看>>
VTKMY 3.3 VS 2010 Configuration 配置
查看>>
01_1_准备ibatis环境
查看>>
windows中修改catalina.sh上传到linux执行报错This file is needed to run this program解决
查看>>
JavaScript中的BOM和DOM
查看>>
360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)
查看>>
spring注入Properties
查看>>
LeetCode : Reverse Vowels of a String
查看>>
时间戳与日期的相互转换
查看>>
jmeter(五)创建web测试计划
查看>>
python基本数据类型
查看>>
1305: [CQOI2009]dance跳舞 - BZOJ
查看>>
关于TDD的思考
查看>>
Cocos2d-x学习之windows 7 android环境搭建
查看>>
将html代码中的大写标签转换成小写标签
查看>>
jmeter多线程组间的参数传递
查看>>
零散笔记
查看>>