这是个很简单的逻辑,本来没有什么太多值得分享的。并且实现程序网上随处可见,鄙人也并未提出更高深的意见。在闲暇看书时,对比了以下两种实现。发现,其
实数学计算的不定性,可利用计算机的不断重复(筛选)得到想要结果(如第一种实现)。但是,显而易见的是,第一种实现有个复杂度的问题。而第二种实现,是在数学计算推导之后,简化得来,使程序实现更简易。
我想表达的是,在解决问题的思想上,是否单纯的使用代码实现,还是简化问题,最后以代码实现。毕竟写程序也是为了实现功能,解决问题。希望将来的自己,能不断提升自己解决问题的能力,从思维模式上改变。也希望能帮助到大件。
C# Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using System;
using System.Collections.Generic; using System.Linq; using System.Text; namespace check { class Program { static void Main( string[] args) { #region 简易算法 算法复杂度O(N^2) //for (int cock = 0; cock <= 20; cock++) //{ // for (int chick = 0; chick <= 99; chick += 3) // { // int hen = 100 - chick - cock; // if (cock * 5 + hen * 3 + chick / 3 == 100) // { // Console.WriteLine("cock={0},hen={1},chick={2}", cock, hen, chick); // } // } //} #endregion //三个变量转换成一个变量 #region 优化算法 O(N) //感觉这是数学处理之后再代码实现 //比如,k<=3. //其实感觉复杂问题中,也是可以根据已知条件(数学表达式) //推导出k的取值 for( int k= 0;k<= 3;k++) { int cock = 4 * k; int hen = 25 - 7 * k; int chick = 75 + 3 * k; Console.WriteLine( "cock ={0},hen={1},chick={2}", cock, hen, chick); } #endregion } } } |