标签:
穷举迭代03/10
for循环拥有两类:
1、穷举:
把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。
for循环拥有两类:
2、穷举:
把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。
for循环 for(int i = 1; i<=5;i++)
{
循环体;
}
while样式 int i= 1;
while(表达式(i<=5))
{
循环体;
状态改变(i++);
}
do while 样式 do
{
循环体;
状态改变(i++);
}while(表达式(i<=5))
练习:
//设洗发水x 150/15==10
//牙刷y 150/5==30
//香皂z 150/2==75
int a = 0;
int sum = 0;
for (int x = 0; x <= 10; x++)
{
for (int y = 0; y <= 30; y++)
{
for (int z = 0; z <= 75; z++)
{
sum++;
if (15 * x + 5 * y + 2 * z == 150)
{
a++;
Console.WriteLine("第" + a + "种买法,洗发水" + x + "瓶,牙刷" + y + "把,香皂" + z + "块。");
}
}
}
}
Console.WriteLine("共有" + a + "种买法。");
Console.WriteLine("总共计算" + sum + "次。");
2、百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?
//公鸡x,50
//母鸡y,100
//小鸡z,200
int sum = 0;
int sum1 = 0;
for (int x = 0; x <= 50;x++ )
{
for (int y = 0; y <= 100;y++ )
{
for (int z = 0; z <= 200;z++ )
{
sum1++;
if((x+y+z==100)&&(2*x+1*y+0.5*z==100))
{
sum++;
Console.WriteLine("第"+sum+"种方法:公鸡"+x+"只,母鸡"+y+"只,小鸡"+z+"只。");
}
}
}
}
Console.WriteLine("总共计算了"+sum1+"次。");
3、 纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?
int a = 7;
int b = 884800000;
for (int i = 1; ; i++)
{
a *= 2;
if (a >= b)
{
Console.WriteLine("这是第" + i + "次折叠。");
Console.WriteLine("高度为" + a);
break;
}
}
标签:
原文地址:http://www.cnblogs.com/zst062102/p/5263942.html