三角形问题(C++) 今日格言:编程第一步逐渐养成计算机思维 有n(n>3)个棍子,第i个棍子长度为ai,随意挑选三根,要求组成三角形,组成的周长最大,若无法组成三角形,则输出为0; 这是一道正常的数学题 作为一个正常的学生,第一次想到的自然是勾股定理,但对于计算机实现而言,它的实现呢(仅仅是代码思路,如需编译,可自行调试) int n,a[MAX_N]; void solve(){ int ans = 0; for(i = 0;i<n;i++){ for(j=i+1;j<n;j++){ for(k=j+1;k<n;k++){ len = a[i]+a[j]+a[k]; 这里运用了max函数来确定最长的一边 int ma = max(a[i],max(a[j],a[k])); rest = len - ma; **if(rest > ma){ if(len>ans){ ans = len; } }**这里是自己的思路,但是可以简化: if(rest>ma){ ans = max(ans,len) } } } } printf("%d/n",ans); } 推荐两个好玩的代码游戏 codecombat中国 (通过玩游戏学习代码知识,支持lua,coffeescript,JavaScript)] (http://jingyan.baidu.com/article/77b8dc7fe684026175eab65e.html) codeTank CodeTank(代码坦克)是由 腾讯 AlloyTeam 和 HTML5 梦工场联合出品的在线坦克仿真游戏平台, 是面向Javascript程序员的编程游戏!]