心血来潮
http://hero.pongo.cn/home/index
static DateTime startTime = DateTime.Now;
static int allTime = 5;//分钟。超时时间
static void Main(string[] args)
{
int A = 5;
int B = 3;
int C = 4;
//c语言:1表示可以,0表示不可以
int r = can(A, B, C);
}
private static int can(int A, int B, int C)
{
int t = 0;
int z = 0;
while (true)
{
z = random(A,B);
t = t + z;
Console.WriteLine("temp={0} value={1}",z,t);
if ((DateTime.Now-startTime).TotalMinutes>allTime)
{
Console.WriteLine("在指定时间内没有计算出结果。");
return 0;
}
if (t > C)
{
Console.WriteLine("重新再来!");
Console.WriteLine("------------------------------");
t = 0;
continue;
}
if (t == C)
{
Console.WriteLine("已经找到解决方案。");
return 1;
}
}
}
private static int random(int A, int B)
{
int i = 0;
i = new Random().Next(4);
if (0==i)
{
Console.WriteLine("用A容器装满水,加入水缸");
return A;
}
else if (1 == i)
{
Console.WriteLine("用B容器装满水,加入水缸");
return B;
}
else if (2 == i)
{
Console.WriteLine("用A容器和B容器分别装满水,同时加入水缸");
return A + B;
}
else
{
Console.WriteLine("清空较小的容器;用较大的容器,装满水;先灌满较小的容器,将剩余的水加入水缸");
return (A > B) ? (A - B) : (B - A);
}
}
效果还凑活哦~