首页 > 试题广场 >

拼凑三角形

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

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


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

输入

1 2 3

输出

5
a, b, c = sorted(map(int, input().split()))
print( a+b+c if a+b>c else (a+b)*2-1 )

发表于 2019-04-15 10:25:09 回复(0)

python多行

L = list(map(int,input().split()))
L.sort()
if L[0]+L[1]>L[2]:
    print(sum(L))
else:
    print((L[0]+L[1])*2-1)

发表于 2019-04-13 09:50:18 回复(0)
import sys
s = [int(x) for x in sys.stdin.readline().strip().split()]
s = sorted(s) def func(s): if s[0]+s[1]>s[2]: print(sum(s)) else:
        s[2] -= 1  func(s)
func(s)
发表于 2019-04-12 15:51:09 回复(0)
arr=list(map(int,input().split()))
arr.sort()
if arr[0]+arr[1]>arr[2]:
    print(sum(arr))
else:
    print(2*arr[0]+2*arr[1]-1)


发表于 2019-03-31 15:38:47 回复(0)
s = list(map(int, input().split()))
s.sort() if s[0]+s[1] > s[2]:  print(sum(s)) else:  while s[0]+s[1] <= s[2]:
        s[2] -= 1    print(sum(s))
发表于 2019-03-19 21:36:51 回复(0)

python两行

a, b, c = sorted(map(int, input().split()))
print(a + b + c if a + b > c else (a + b) * 2 - 1)

将三个边长排序,如果长度小的两边加起来大于最长的边,肯定可以组成三角形,
某则,最长的边就要进行切割,切割到a + b - 1, 此时周长为a + b + a + b - 1 = ??

发表于 2019-02-24 19:17:00 回复(2)
inp = [int(x) for x in input().split()]
inp.sort()
if inp[0] + inp[1] <= inp[2] :
    inp[2] = inp[0] + inp[1] -1
print(sum(inp))

发表于 2019-02-16 14:57:07 回复(0)