Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

KristianZanev avatar KristianZanev 16 Точки

Проблем с 03. Odd Even Position | for-loop

Здравейте, имам проблем със следната задачка. Работи перфектно с цели числа, но пробвам ли с реални - резултата е грешен. Ще бъда благодарен ако колега ми обясни защо става така... ЛИНК към 3 задача.

function oddEven(input) {
            let n = Number(input.shift());
            let evenmax = -1000000000.0;
            let evenmin = 1000000000.0;
            let evensum =0;
        
            let oddmax = -1000000000.0;
            let oddmin = 1000000000.0;
            let oddsum =0;
            
        
            for (let i = 0; i < n; i++) {
                let num = Number(input.shift());

                if (num % 2 == 0) {
                    evensum += num;

                    if (num >= evenmax) {
                        evenmax = num;
                    } if(num <= evenmin  ) {
                        evenmin = num;
                    }
                      

                } else if (num % 2 != 0) {
                    oddsum += num;

                    if (oddmax <= num) {
                        oddmax = num;
                    } if(oddmax >= num) {
                        oddmin = num;
                    }
                    
                }
                
            }
            console.log(`OddSum=${(oddsum.toFixed(2))},`);
            console.log(`OddMin=${(oddmin.toFixed(2))},`);
            console.log(`OddMax=${(oddmax.toFixed(2))},`);
        
            console.log(`EvenSum=${(evensum.toFixed(2))},`);
            console.log(`EvenMin=${(evenmin.toFixed(2))},`);
            console.log(`EvenMax=${(evenmax.toFixed(2))}`);
            
        }
        oddEven([4,
            1.5,
            1.75,
            1.5,
            1.75])

 

Тагове:
0
Programming Basics 14/02/2019 23:15:01
Stoyan.Ivanov.87 avatar Stoyan.Ivanov.87 20 Точки
Best Answer

Ето го и моето ршение:

function oddEvenPosition(input) {

let n = Number(input[0]);

let i;

let evenSum = 0;

let oddSum = 0;

let num = 0;

let evenMaxNumber = Number.MIN_SAFE_INTEGER;

let evenMinNumber = Number.MAX_SAFE_INTEGER;

let oddMaxNumber = Number.MIN_SAFE_INTEGER;

let oddMinNumber = Number.MAX_SAFE_INTEGER;

 

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

num = Number(input[i]);

if (n == 1) {

evenSum = 0;

evenMinNumber = "No";

evenMaxNumber = "No";

oddSum += num;

oddMaxNumber = num.toFixed(2);

oddMinNumber = num.toFixed(2);

break;

}

if (n == 2) {

if (i % 2 == 0) {

evenSum += num;

evenMaxNumber = num.toFixed(2);

evenMinNumber = num.toFixed(2);

} else {

oddSum += num;

oddMaxNumber = num.toFixed(2);

oddMinNumber = num.toFixed(2);

}

}

if (n > 2) {

if (i % 2 == 0) {

evenSum += num;

if (num >= evenMaxNumber) {

evenMaxNumber = num.toFixed(2);

}

if (num <= evenMinNumber) {

evenMinNumber = num.toFixed(2);

}

} else {

oddSum += num;

if (num >= oddMaxNumber) {

oddMaxNumber = num.toFixed(2);

}

if (num <= oddMinNumber) {

oddMinNumber = num.toFixed(2);

}

}

}

}

if (n == 0) {

evenSum = 0;

evenMinNumber = "No";

evenMaxNumber = "No";

oddSum = 0;

oddMaxNumber = "No";

oddMinNumber = "No";

}

console.log(`OddSum=${oddSum.toFixed(2)},\nOddMin=${oddMinNumber},\nOddMax=${oddMaxNumber},\nEvenSum=${evenSum.toFixed(2)},\nEvenMin=${evenMinNumber},\nEvenMax=${evenMaxNumber}`);

}

0
KristianZanev avatar KristianZanev 16 Точки

Благодаря помогна ми доста

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