2017-02-18 7 views
-2

У меня есть массив целых чисел A, обозначающий длину стороны треугольника. Мне нужно найти минимальную длину третьего возможного, если любые две стороны будут взяты из массива как две другие стороны.Поиск минимально допустимой третьей стороны треугольника

Теперь я знаю, что если третья сторона будет c и две другие стороны будут a и b(a>b) минимальная сторона возможное c>a-b или c=a-b+1.

Я отсортировал массив и взял последовательное различие, чтобы найти возможную сторону. Однако я получаю неправильный ответ. Мой код выглядит следующим образом:

int n; 
cin>>n; // stores length of sides of triangle 
int a[n];   
sort(a,a+n); 
    unsigned long long int min2 = numeric_limits<double>::infinity(); 
    for(long long i=0;i<n-1;i++) 
    { 
     if ((a[i+1] - a[i] +1) <= min2) 
     min2 = a[i+1] - a[i] +1; 
    } 

cout<<min2; 

Для например - A = [2 2 2], так что минимум третья будет 1. Это правильно по мне, но не на тестовом случае мне неизвестно.

Где я делаю неправильно? Я думаю, что ошибка в +1 в условии if. Но я не могу понять.

+2

пожалуйста обеспечивают [mcve] и скажите нам, что вход и выход вместе с ожидаемый результат. – user463035818

+0

@ tobi303 В этом проблема. Я не знаю, где это происходит, потому что я не знаю ввода или ожидаемого вывода. – sammy

+2

ха? откуда поступает вход? Если вы не знаете ответа, то ваш подход ошибочен. Вы должны сначала взять ручку и бумагу или сделать некоторые [чтение] (https://en.wikipedia.org/wiki/Triangle) только тогда, когда вы знаете, как его решить на бумаге, имеет смысл начать писать код. – user463035818

ответ

0

Теорема: сумма длин любых двух сторон треугольника больше длины третьей стороны.

если и выбрать 8 и 13 имеет две стороны, то минимальная длина третьей стороне 6 и максимум было б 20

+0

, если вы называете это теоремой, вы должны либо дать доказательство, либо ссылку:) – user463035818

+0

Это то, что я делаю в коде. – sammy

+0

Ваш пример неверен. Если две стороны равны 8 и 13, то минимальная третья - 5 не 6, а максимальная - 21 не 20 – user463035818

Смежные вопросы