例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的阶乘和

}

 

posted on 2014-08-20 08:38  灵心  阅读(184)  评论(0编辑  收藏  举报