C# 迭代 穷举 练习题


1、纸张厚度为0.07mm,问对折多少次能够超过8848m?

double zhi = 0.07;
int ci = 0;
for ( ; ; )
{
zhi *= 2;
ci++;
if(zhi>8848000)
{
break;
}
}
Console.WriteLine(ci);
Console.WriteLine(ci + "次这之后,达到" + zhi / 1000 + "米!");
Console.ReadLine();

double zhi = 0.07;
int ci = 0;
while (zhi <= 8848000)
{
zhi *= 2;
ci++;
}
Console.WriteLine(ci);
Console.ReadLine();

2、五个小朋友排成一队,问第一个多大了,
  第一个说比第二个大两岁,问第二个多大了,
  第二个说比第三个大两岁。。。以此类推,
  问第5个小朋友,说自己3岁了。问第一个小朋友几岁了?

int a = 3;
for (int i = 1; i <= 4; i++)
{
a += 2;
}
Console.WriteLine("第一个小朋友{0}岁了!", a);
Console.ReadLine();

3、大马驼2石粮食,中马驼1石粮食,两头小马驼1石粮食
  要用100头马,驼100石粮食,请问有多少种方法?
  穷举次数:51*101*201

int n = 0;
int zong = 0;
for (int da = 0; da * 2 <= 100; da++)
{
for (int zhong = 0; zhong * 1 <= 100; zhong++)
{
for (int xiao = 0; xiao * 0.5 <= 100; xiao++)
{
zong++;
if (2 * da + 1 * zhong + 0.5 * xiao == 100 && da + zhong + xiao == 100)
{
n++;
Console.WriteLine("第{0}种方法,大马驼{1}石,中马驼{2}石,小马驼{3}石!", n, da, zhong, xiao);
}
}
}
}
Console.WriteLine("总共有" + n + "种方法!");
Console.WriteLine(zong);
Console.ReadLine();


4、现有1分,2分,5分钱无数
  求组成1.5元,有多少种方法?

int n = 0;
for (int a = 0; a * 0.01 <= 1.5; a++)
{
for (int b = 0; b * 0.02 <= 1.5; b++)
{
for (int c = 0; c * 0.05 <= 1.5; c++)
{
if (a * 0.01 + b * 0.02 + c * 0.05 == 1.5)
{
n++;
Console.WriteLine("第{0}种方法:1分{1}个,2分{2}个,5分{3}个!", n, a, b, c);
}
}
}
}
Console.WriteLine("总共有" + n + "种方法!");
Console.ReadLine();

5、  99口诀表

for (int i=1;i<=9 ;i++ )
{
for (int j = 1; j <= i; j++)
{
Console.Write(j+"*"+i+"="+i*j+" ");
}
Console.WriteLine();
}
Console.ReadLine();


int i=1;
while(i<=9)
{
int j = 1;
while(j<=i)
{
Console.Write(j+"*"+i+"="+i*j+" ");
j++;
}
i++;
Console.WriteLine();
}
Console.ReadLine();

原文地址:https://www.cnblogs.com/hcx999/p/5702297.html