標籤:
15-07-03 語句- for () 迴圈語句-窮舉法
for() 窮舉法
用迴圈把各種可能的情況都走一遍,然後用if條件把滿足要求的結果給篩選出來。
例如:
1、找100以內的偶數
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 0)
{
Console.WriteLine(i);
}
}
2、小明單位發了50元的購物卡,他到超市買洗化用品,一是牙刷(5元),二是香皂(2元),三是牙膏(10元)怎麼可以正好把五十元花完。
for (int ys = 0; ys <= 10; ys++)
{
for (int yg = 0; yg <= 5; yg++)
{
for (int fz = 0; fz <= 25;fz++ )
{
double a = ys * 5 + yg * 10 + fz * 2;
if(a == 50)
{
Console.WriteLine("可以買牙刷"+ys+"只,牙膏"+yg+"只,肥皂"+fz+"只");
}
}
}
}
3、大馬馱2石糧食,中馬馱1石糧食,兩頭小馬馱一旦糧食,要用100匹馬,馱100石糧食,該如何調配
for (int d = 0; d <= 50; d++)
{
for (int x = 0; x <= 100; x++)
{
for (int y = 0; y <= 200; y++)
{
double a = d * 2 + x + y * 0.5;
if (a == 100)
{
Console.WriteLine("用" + d + "匹大馬,用" + x + "匹小馬,用" + y + "匹幼馬");
Thread.Sleep(50);
}
}
}
}
4、有1塊,2塊,5塊的錢若干,湊出20塊錢,有幾種湊法
for (int a = 0; a <= 20;a++ )
{
for (int b = 0; b <= 10;b++ )
{
for (int c = 0; c <= 4;c++ )
{
int d = a + b * 2 + c * 5;
if (d == 20)
{
Console.WriteLine("需要1塊錢"+a+"張,2塊錢"+b+"張,5塊錢"+c+"張");
}
}
}
}
5、某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中儘可能多地挑若干人,但有以下限制條件:
偵察兵A和B兩人中至少去一人; a+b>=1
A和D不能一起去; a+d<=1
A、E和F三人中要派兩人去; a+e+f == 2
B和C都去或都不去; b+c !=1
C和D兩人中去一個; c+d==1
若D不去,則E也不去。 d+e==0 || d=1
問應當讓哪幾個人去?
for (int a = 0; a <= 1; a++)
{
for (int b = 0; b <= 1; b++)
{
for (int c = 0; c <= 1; c++)
{
for (int d = 0; d <= 1; d++)
{
for (int e = 0; e <= 1; e++)
{
for (int f = 0; f <= 1; f++)
{
if (a+b >= 1 && a+d <= 1 && a+e+f == 2 && b+c != 1 && c+d == 1 && (d+e == 0 || d == 1))
{
Console.WriteLine("A:" +a+ "\nB:" +b+ "\nC:" +c+ "\nD:" +d+ "\nE:" +e+ "\nF:" +f);
}
}
}
}
}
}
}
6. 1 () 2 () 3 ()4 = 4;問括弧裡我要填 (- 或 +)
for (int a=-1;a<=1;a=a+2)
{
for(int b=-1;b<=1;b=b+2)
{
for(int c=-1;c<=1;c=c+2)
{
int d = 1 + a * 2 + b * 3 + c * 4;
if( d == 4)
{
Console.WriteLine("1+"+a*2+"+"+b*3+"+"+c*4+"=4");
}
}
}
}
15-07-03 語句- for () 迴圈語句-窮舉法 for() 窮舉法 用迴圈把各種可能的情況都走一遍,然後用if條件把滿足要求的結果給篩選出來。