hq金水

愿你是阳光,明媚不忧伤~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

循环语句-----经典案例

Posted on 2016-04-17 22:15  hq金水  阅读(665)  评论(0编辑  收藏  举报

//穷举法 

思想:先让所有的情况走一遍,再用if筛选。
//★输出100以内与7有关的数字

static void Main(string[] args)
{
int i;
for (i = 0; i <= 100; ++i)
{
if (i % 7 == 0 || i % 10 == 7 || i / 7 == 7)
{
Console.Write(i + "\t");
}
}
}

//1.小张单位发100元的购物卡,小张要去超市买三种日常用品:牙刷(5元)、香皂(2元)、洗发水。(15元),购物卡不退现,小张又不想多花钱,如何购买刚好花完这100元的卡?

static void Main(string[] args)
{
int x, y, z;
int zh = 0;
for (x = 0; x <= 20; x++)
{
for (y = 0; y <= 50; y++)
{
for (z = 0; z <= 6; z++)
{
if (5 * x + 2 * y + 15 * z == 100)
{
//Console.Write(x + " ");
//Console.Write(y + " ");
//Console.Write(z + " ");
//Console.WriteLine();
Console.WriteLine("牙刷{0}支,香皂{1}盒,洗发水{2}瓶",x,y,z);
zh++;
}
}
}
}
Console.WriteLine("一共有{0}种组合方式",zh);
}

 

//2.百鸡百钱
//公鸡2文钱,母鸡1文钱,小鸡半文钱。用100文钱,买100只鸡,有哪几种组合?

static void Main(string[] args)
{
int g, m, x,zh=0;
for (g=0;g<=50;g++)
{
for (m=0;m<=100;m++)
{
for (x=0;x<=100;x++)
{
if(g+m+x==100&&2*g+m*1+x*0.5==100)
{
Console.WriteLine("公鸡{0};母鸡{1};小鸡{2};", g, m, x);
zh++;
}
}
}
}
Console.WriteLine("共有{0}组合方式",zh);
}

//3.用加减符号填空   

123( )45( )67( )8( )9=100

public static void Main(string[] args)
{
int a, b, c, d;
for (a=-1;a<=1;a+=2)
{
for (b = -1; b<=1;b+=2 )
{
for (c=-1;c<=1;c+=2 )
{
for (d=-1;d<=1;d+=2)
{if(123+a*45+b*67+c*8+d*9==100)
{
Console.WriteLine("{0},{1},{2},{3}",a,b,c,d);
}
}
}
}
}
}

 //4.一堆苹果,3个3个地分刚好分完,4个4个地分剩1个,这堆苹果可能有多少个?

public static void Main(string[] args)
{
int a = 0;
for (int i = 0; i <= 10000; i++)
{
if (i % 3 == 0 && i % 4 == 1)
{
Console.WriteLine(i);
a++;
if (a > 5)
break;
}
}
}

 

 

//迭代法

思想:找出规律,完成循环的四要素。
//★输出100以内数字的和

static void Main(string[] args)
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum = sum + i;
}
Console.WriteLine(sum);
} 

//1.猴子吃桃子

#region

int taozishu = 1, i;
for (i = 6; i >= 1; i--)
{
taozishu = (taozishu + 1) * 2;
}
Console.WriteLine(taozishu);
#endregion

//2.国际象棋棋盘放米

double mi = 1, ai;
for (ai = 2; ai <= 64; ai++)
{
mi = mi * 2;
Console.Write(mi + "\t");
}
//Console.WriteLine("最后一格放的米数:{0}",mi)

//3.折纸
//一张纸厚度 0.088mm----0.000088m 珠峰高度 8848m

double houdu = 0.000088,j;
for (j= 1; ; j++)
{
houdu = houdu * 2;
if (houdu >= 8848)
{
Console.WriteLine("折纸折{0}次,就达到珠峰的高度了", j);
break;
//continue;
}
}

//4.兔子生兔子

#region
int mooth, tu1 = 1, tu2 = 1, tu3 = 0;
for (mooth = 3; mooth <= 24; mooth++)
{
tu3 = tu2 + tu1;
tu2 = tu3;
tu1 = tu2;
// Console.WriteLine("本月的兔子数是:{0}",tu3);
}
Console.WriteLine("本月的兔子数是:{0}", tu3);
#endregion

 

 5.打印星号

//9行10列星

for (int bi = 1; bi <= 9; bi++)
{
for (int bj = 1; bj <= 10; bj++)
{
Console.Write("");
}
for (int k = 1; k <= 10; ++k)
{
Console.Write("");
}
Console.Write("\n");
}

 

//上三角

for (int ci = 1; ci <= 6; ++ci)
{
for (int cj = 1; cj <= i; ++cj)
{
Console.Write("");
}
Console.WriteLine();
} 


 

//下三角

for (int di = 1; di <= 9; ++di)
{
for (int dj = 1; dj <= 7 - i; ++dj)
{
Console.Write("");
}
Console.Write("\n");
}

 


 

//倒三角

for (int ei = 1; ei <= 6; ei++)
{
for (int ej = 1; ej <= 6 - i; ej++)
{
Console.Write(" ");
}
for (int k = 1; k <= i; k++)
{
Console.Write("");
}
Console.Write("\n");
}


 

//倒三角

for (int fi = 1; fi <= 6; fi++)
{
for (int fj = 1; fj <= i - 1; fj++)
{
Console.Write(" ");
}
for (int fk = 1; fk <= 7 - i; fk++)
{
Console.Write("");
}
Console.WriteLine();
}

 

 

//等腰三角

for (int hi = 1; hi <= 5; hi++)
{
for (int hj = 1; hj <= 5 - i; hj++)
{
Console.Write(" ");
}
for (int k = 1; k <= 2 * i - 1; k++)
{
Console.Write("");
}
Console.Write("\n");
}

 


//+菱形  和上面代码接起来

for (int ji = 1; ji <= 4; ji++)
{
for (int jj = 1; jj <= i; jj++)
{
Console.Write(" ");
}
for (int k = 1; k <= 9 - 2 * i; k++)
{
Console.Write("");
}
Console.Write("\n");
}

 

 

小知识点:

break; 完全终止循环,退出循环。 吃到苍蝇
continue; 中断本次循环,进入下次循环。 吃到沙子