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