Loading...
m.smokov avatar m.smokov 0 Точки

Някой може ли да помогне с решение на тази задача на (javaScript)

* Елемент, равен на сумата на останалите

Да се напише програма, която чете n-на брой цели числа, въведени от потребителя, и проверява дали сред тях съществува число, което е равно на сумата на всички останали. Ако има такъв елемент, печата "Yes", "Sum = "  + неговата стойност; иначе печата "No", "Diff = " + разликата между най-големия елемент и сумата на останалите (по абсолютна стойност).

Примерен вход и изход  

 

 

Тагове:
0
JavaScript Fundamentals
svetoslav_0 avatar svetoslav_0 1009 Точки

Здравей,

според мен би било най-правилно, ако имаш някакво решение, което не работи, за да можем да ти помогнем да го доразвиеш :)

Но все пак мога да опитам да ти дам някакви насоки. Тази задача има няколко решения, като едно от най-простите изглежда така: трябват ти две неща: сумата от абсолютно всички числа и най-голямото из между тях. Ако сумата, разделена на две е равна най-голямото число, значи то е това, което търсим. Виж примерите и би трябвало да разбереш за какво говоря :)

0
m.smokov avatar m.smokov 0 Точки

function maxSum(arg){

let n = Number(arg[0]);

let sum = 0;

let maxNum = Number.MIN_VALUE;

for(var i = 1;i <= n;i++){

let num = Number(arg[i]);

if(num > maxNum){

maxNum = num;

}

}

number = sum - maxNum;

 

if(maxNum === sum){

console.log("Yes, sum = " + maxNum)

}

else{

number2 = Math.abs(maxNum - sum);

console.log("No,diff = " + number2);

}

}

 

 

стигам до тук , и не мога да си обясня защо не тръгва :)

0
svetoslav_0 avatar svetoslav_0 1009 Точки

Пропускаш две важни неща:

 - на всяко завъртане на цикъла да добавяш текущото число към сумата

 - в проверката след цикъла трябва да провериш дали най-голямото число не е равно на сумата, разделена на две

Още нещо: какво прави този ред:

number = sum - maxNum;
0
07/04/2019 20:35:05
m.smokov avatar m.smokov 0 Точки

Благодаря за съветите !

0
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Ако приемем че входните данни ще се подават като масив следното решение би трябвало да ти свърши работа https://pastebin.com/JSgrbWAF

1
angelraynov avatar angelraynov 3 Точки

Здравей, според условието, мога да ти дам следните насоки:

1. правиш си променлива sum = 0 и maxNum = MIN_VALUE

2. докато итерираш към sum прибавяш всяко число,което четеш и сравнявяш дали i > maxNum, ако да maxNum = i 

3. след като си извъртял цикъла  вадиш maxNum от sum и проверяваш дали двете са станали равни

Дано съм успял да помогна. :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.