首页 > 试题广场 >

拼凑三角形

[编程题]拼凑三角形
  • 热度指数:311 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛手中有三根木棍,长度分别是a,b,c。牛牛可以把任一一根木棍长度削短,牛牛的目标是让这三根木棍构成一个三角形,并且牛牛还希望这个三角形的周长越大越好。

输入描述:
输入包括一行,一行中有正整数a, b, c(1 ≤ a, b, c ≤ 100), 以空格分割


输出描述:
输出一个整数,表示能拼凑出的周长最大的三角形。
示例1

输入

1 2 3

输出

5
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int a[3],i;
    for(i=0;i<3;i++) scanf("%d",a+i);
    for(sort(a,a+3);a[2]>=a[0]+a[1];a[2]--);
    printf("%d",a[0]+a[1]+a[2]);
}

发表于 2017-11-29 17:52:05 回复(0)
importjava.util.Scanner;
 
publicclassMain {
    publicstaticvoidmain(String[] args) {
        Scanner sc=newScanner(System.in);
        inta=sc.nextInt();
        intb=sc.nextInt();
        intc=sc.nextInt();
        if(a>b&a>c){
            intd=a;
            a=c;
            c=d;
        }elseif(b>a&b>c){
            intd=b;
            b=c;
            c=d;
        }
        intmax=c;
        for(inti=0;i<max;i++){
            if(a+b>c&a+c>b&b+c>a){
                System.out.println(a+b+c);
                break;
            }
            c--;
        }
 
    }
}
发表于 2020-03-21 19:40:57 回复(0)
s = list(map(int,input().split()))
s.sort()
if s[0]+s[1]>s[2] and s[2]-s[0] < s[1]:
result = sum(s)
else:
result = 2*(s[0]+s[1])-1
print(result)
编辑于 2019-08-21 15:41:14 回复(0)

L=list(input().split())
L2=[]
for x in L:
    x=int(x)
    L2.append(x)
L2.sort()
L=L2[:]
sum_01=L[0]+L[1]
while True:
    if sum_01<=L[2]:
        L[2]=L[2]-1
        L.sort()
        sum_01=(L[0]+L[1])
    else:
        sum=L[0]+L[1]+L[2]
        break
print(sum)

编辑于 2018-09-08 23:31:22 回复(0)
两边之和不大于第三边,就减到大于,如果两边之差不小于第三边,那两边差中大的减去一知道满足条件。交换三边满足之前条件输出

# coding=utf-8
a,b,c=map(int,raw_input().split())
defchange(a1,b1,c1):
 
    while1:
        ifnota1+b1>c1:
            c1-=1
        elifnotabs(a1-b1)<c1:
            ifcmp(a1,b1)==1:
                a1-=1
            elifcmp(a1,b1)==0:
                a1-=1
            elifcmp(a1,b1)==-1:
                b1-=1
        elifa1+b1>c1 andabs(a1-b1)<c1:
            returna1,b1,c1
c,b,a=change(a,b,c)
c,a,b=change(a,b,c)
print(a+b+c)

发表于 2018-07-03 17:36:44 回复(0)