Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# Дан массив размера N. Найти 2 элемента массива, сумма которых наиболее близка к максимуму массива и поменять

andrey sergeev Знаток (411), закрыт 7 лет назад
их местами
Лучший ответ
Бугаев Сергей Дмитриевич Мудрец (19860) 7 лет назад
if (array.Length < 2) throw new Exception("В массиве требуется минимум 2 элемента")
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
andrey sergeevЗнаток (411) 7 лет назад
Зачем нужна эта строчка
var distanceSum = Math.Abs(max - (array[0] + array[1]));
Бугаев Сергей Дмитриевич Мудрец (19860) Что бы задать начальную минимальную "дистанцию" суммы двух элементов до максимума. Если встретится меньше - то переписать.
andrey sergeevЗнаток (411) 7 лет назад
Спасибо большое все работает отлично
MolotowЗнаток (278) 7 лет назад
ОТВЕТ НА ВОПРОС
Бугаев Сергей Дмитриевич
Мудрец (19293)
if (array.Length < 2) throw new Exception("В массиве требуется минимум 2 элемента")
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
1 день назад
КОММЕНТАРИИ К ОТВЕТУ
andrey sergeev
Ученик (227)
Зачем нужна эта строчка
var distanceSum = Math.Abs(max - (array[0] + array[1]));
1 комментарий1 д.
andrey sergeev
Ученик (227)
Спасибо большое все работает отлично
комментировать1 д.
Остальные ответы
gjd dgj Ученик (118) 7 лет назад
а+б =18
Вар а. б: интагир
риад а. б
энд
Molotow Знаток (278) 7 лет назад
ОТВЕТ НА ВОПРОС
Бугаев Сергей Дмитриевич
Мудрец (19293)
if (array.Length < 2) throw new Exception("В массиве требуется минимум 2 элемента")
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
1 день назад
КОММЕНТАРИИ К ОТВЕТУ
andrey sergeev
Ученик (227)
Зачем нужна эта строчка
var distanceSum = Math.Abs(max - (array[0] + array[1]));
1 комментарий1 д.
andrey sergeev
Ученик (227)
Спасибо большое все работает отлично
комментировать1 д.
Lena Stolena Знаток (292) 7 лет назад
if (array.Length < 2) throw new Exception(two el.)
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
Nastya Ckladchikova Ученик (169) 7 лет назад
нет нетак не списывай не прав ответы 2 ответ пр
Максим Винник Мастер (2413) 7 лет назад
if (array.Length < 2) throw new Exception(two el.)
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
денис леонов Просветленный (43007) 7 лет назад
if (array.Length < 2) throw new Exception(two el.)
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
ФотоВидеоИсточник: Символов: 3800
RAMZES Мыслитель (5808) 7 лет назад
if (array.Length < 2) throw new Exception(two el.)
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
виталий сутормин Знаток (291) 7 лет назад
if (array.Length < 2) throw new Exception("В массиве требуется минимум 2 элемента")
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
Мария Астафьева Знаток (457) 7 лет назад
if (array.Length < 2) throw new Exception("В массиве требуется минимум 2 элемента")
var max = array[0];
for (var i = 1; i < N; i++) {
if (max < array[i]) {
max = array[i];
}
}
var el1 = 0;
var el2 = 1;
var distanceSum = Math.Abs(max - (array[0] + array[1]));
for (var i = 0; i < N; i++) {
for (var j = i + 1; j < N; j++) {
var ds = Math.Abs(max - (array[i] + array[j]));
if (ds < distanceSum) {
el1 = i;
el2 = j;
distanceSum = ds;
}
}
}
var temp = array[el1];
array[el1] = array[el2];
array[el2] = temp;
Похожие вопросы