穷举与迭代
2016-06-23 16:58 天疯狂石 阅读(333) 评论(0) 编辑 收藏 举报1.穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。
例:
百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,
小鸡半文钱一只,总共只有100文钱,
如何在凑够100只鸡的情况下刚好花完100文钱?
int n = 0;
for (int x = 0; x <= 50; x++)
{
for (int y = 0; y <= 100; y++)
{
for (int z = 0; z <= 200; z++)
{
if (x + y + z == 100 && x * 2 + y + z * 0.5 == 100)
{
Console.WriteLine(x + "只公鸡" + y + "只母鸡" + z + "只小鸡");
n++;
}
}
}
}
Console.WriteLine("共" + n + "种");
Console.ReadLine();
2.迭代:从初始情况按照规律不断求解中间情况,最终推导出结果。
五个小朋友排成一队,问第一个多大了,
第一个说比第二个大两岁,问第二个多大了,
第二个说比第三个大两岁。。。以此类推,
问第5个小朋友,说自己3岁了。问第一个小朋友几岁了?
for方法:
int a = 3;
for (int i = 1; i < 5; i++)
{
a += 2;
}
Console.WriteLine(a);
Console.ReadLine();
while方法1:
int a = 3;
int i = 1;
while (i < 5)
{
i++;
a += 2;
}
Console.WriteLine(a);
Console.ReadLine();
while方法2:
int a = 3;
int i = 1;
while (true)
{
i++;
a += 2;
if (i == 5)
{
break;
}
}
Console.WriteLine(a);
Console.ReadLine();