爱奇艺2018校招前端开发三道编程题。
第一题是给三个长度不同的棍子,边长可以减,求能组成周长最大的三角形是多长。
第一题代码没有保留,凭记忆写了
解法如下:考虑三角形特性,任意两边之和大于第三边,
样例输入
1 2 3
样例输出
5
思路如下:找出最大边max,最小边min,中间边mid,只要min+mid>max,三角形就能成立,
主要的坑在,每次执行 max - - ;之后,最大边可能会变化,所以要重新对这三条边进行比较,
重新赋值max;min;mid;
最后输出结果,很简单。
这里贴上代码(通过率100%)
var line;
var arr=[];
while(line=readline()){
arr=line.split(" ");
var sum=parseInt(arr[0])+parseInt(arr[1])+parseInt(arr[2]);
var max=Math.max(arr[0],arr[1],arr[2]);
var min=Math.min(arr[0],arr[1],arr[2]);
var mid=sum-max-min;
while(min+mid<=max){
max--;
sum=max+min+mid;
max=Math.max(max,min,mid);
min=Math.min(max,min,mid);
mid=sum-max-min;
}