Задача: еднакви двойки / JAVA SCRIPT
Здравейте, имам повече свободно време и съм се хванал да гледам видеата и чета учебника за JS едновременно. Има доста обяснени задачи във видео уроците, но не намерих за тази за JS конкретно. Не мога да схвана как да си вземам 2х2 двойките числа с цикъла? Някой може ли да даде линк ако има към видео с обяснена тази задача или да обясни съвсем бейсик без методи/функции, а по най-елементарния начин.
Задача: еднакви двойки
Дадени са 2 * n числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички двойки имат еднаква стойност.
В случай, че е еднаква отпечатайте "Yes, value=…" + стойността, в противен случай отпечатайте максималната разлика между две последователни двойки в следния формат - "No, maxdiff=…" + максималната разлика.
Входът се състои от число n, следвано от 2*n цели числа, всички по едно на ред.
Вход:
4
1
1
3
1
2
2
0
0
No, maxdiff=4;
стойности = {2, 4, 4, 0}
разлики = {2, 0, 4}
макс. разлика = 4
@d_alexiev
Когато срещнете нещо непознато в код, най-лесното и правилно нещо е да го потърсите в интернет и да опитате да го разберете:
Number.parseInt() - parses a string argument and returns an integer.
Трябва ни, защото входните данни идват като масив от стрингове, напр.: ['4', '1', '1', '3', '1', '2', '2', '0', '0']
Array.prototype.shift() - removes the first element from an array and returns that removed element.
Това е най-удобният и естесвен начин, входните данни да бъда изконсумирани последователно без да пишем излишен код, което ни помага да се фокусираме върху проблема, който трябва да решим в задачата
NaN - a value representing Not-A-Number
Това е най-сигурната стойност, която може да се присвои в случая за previousPairSum, защото при обработката на първата двойка числа тази променлива не трябва да има стойност. Помага да се напише по-изчистен от разклонения алгоритъм за валидация на двойките.
За да се реши задачата без използване на shift(), трябва да се използва глобален индекс за достъпване на елементите, който да се увеличава след всяко използване:
Благодаря Ви, че си отделихте от свободното време за начинаещ като мен.
Вместо Number.parseInt() - на мен ми е известен варианта с array.map(Number), но пак опираме до това, че има "map" използвано.
Изпробвах варианта с Number.parseInt(), но ми конвертира само първия елемент в число -
let a = ["4","5","8"];
let b = Number.parseInt(a);
console.log(b);
Същото е и така:
let a = ["2","6","7"];
let index = 0;
let b = Number.parseInt(a[index++]);
console.log(b);
Къде греша?
Защо при стартирането на програмата при какъвто и да е вход ми изкарва винаги "Yes, value=NaN"? При Вас сработва ли?