1 static void Main(string[] args) 2 { 3 int n;//问题规模 4 int count = 0;//记录循环的次数 5 int res=0;//记录寻找到的结果又几种 6 Console.WriteLine("请输入问题规模n的值:"); 7 n = Convert.ToInt32(Console.ReadLine()); 8 TestOne(n, ref count,ref res); 9 Console.WriteLine("方法一运行次数:" + count + "次;"+"结果有"+res+"种。"); 10 11 count = 0;res=0; 12 TestTwo(n,ref count,ref res); 13 14 Console.WriteLine("方法二运行次数:" + count + "次;"+"结果有"+res+"种。"); 15 Console.ReadKey(); 16 }
1 static void TestTwo(int n, ref int count,ref int res) 2 { 3 Console.WriteLine("方法二:"); 4 for (int i = 0; i < n; i = i + 3) 5 { 6 count++; 7 8 if ((((4 * i / 3.0) - n) == Convert.ToInt32((4 * i / 3.0) - n)) && (Convert.ToInt32((4 * i / 3.0) - n) > 0) && ((2 * n - (7 * i / 3.0)) == Convert.ToInt32(2 * n - (7 * i / 3.0))) && (Convert.ToInt32(2 * n - (7 * i / 3.0)) > 0)) 9 { 10 if (i > 766) 11 { } 12 Console.Write("公鸡有:" + ((4 * i / 3.0) - n) + "只;"); 13 Console.Write("母鸡有:" + (2 * n - (7 * i / 3.0)) + "只;"); 14 Console.Write("小鸡有:" + i + "只。\n"); 15 res++; 16 } 17 18 19 } 20 }
1 static void TestOne(int n,ref int count,ref int res) 2 { 3 for (int i = 1; i < (n / 5); i++) 4 for (int j = 1; j < (n / 3); j++) 5 { 6 count++; 7 if (((n - i - j) % 3 == 0) && (7*i+4*j == n)) 8 { 9 Console.Write("公鸡有:" + i + "只;"); 10 Console.Write("母鸡有:" + j + "只;"); 11 Console.Write("小鸡有:" + (n - i - j) + "只。\n"); 12 res++; 13 } 14 } 15 }