Loading...

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

chakarov15 avatar chakarov15 2 Точки

03. Numbers 02. Programming Fundamentals Mid Exam JavaScript

Здравейте,

За съжаление получавам на тази задача само 80/100 точки. Някой има ли някаква идея каква точно може да е причината?

 

Това е решението което имам:

https://pastebin.com/9siCTCRn

 

Тук може да видите условието:

Write a program to read a sequence of integers and find and print the top 5 numbers greater than the average value in the sequence, sorted in descending order.

Input

· Read from the console a single line holding space-separated integers.

Output

· Print the above-described numbers on a single line, space-separated.

· If less than 5 numbers hold the property mentioned above, print less than 5 numbers.

· Print "No" if no numbers hold the above property.

Constraints

· All input numbers are integers in the range [-1 000 000 … 1 000 000].

· The count of numbers is in the range [1…10 000].

Examples

Input Output Comments

'10 20 30 40 50' 50 40 Average number = 30. Numbers greater than 30 are: {40, 50}. The top 5 numbers among them in descending order are: {50, 40}. Note that we have only 2 numbers, so all of them are included in the top 5.

'5 2 3 4 -10 30 40 50 20 50 60 60 51' 60 60 51 50 50 Average number = 28.08. Numbers greater than 20.078 are: {30, 40, 50, 50, 60, 60, 51}. The top 5 numbers among them in descending order are: {60, 60, 51, 50, 50}.

'1' No Average number = 1. There are no numbers greater than 1.

'-1 -2 -3 -4 -5 -6' -1 -2 -3 Average number = -3.5. Numbers greater than -3.5 are: {-1, -2, -3}.

 

Благодаря предварително! 

 

0
JavaScript Fundamentals
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

:-)

function numbers(str) {
    let numbersArr = str.split(' ');
    let avg = 0;

    for (let i = 0; i <= numbersArr.length - 1; i++) {
        avg += Number(numbersArr[i]);
    }

    avg = avg / numbersArr.length //Avg Number
    let aboveAvg = [];

    for (let i = 0; i <= numbersArr.length - 1; i++) {
        // if (Number(numbersArr[i]) > avg.toFixed(2)) {
        if (Number(numbersArr[i]) > avg) {
            aboveAvg.push(Number(numbersArr[i]));
        }
    }

    aboveAvg.sort((a, b) => b - a); // !!! sort before validations otherwise not correct numbers will be passed on

    if (aboveAvg.length > 5 && aboveAvg.length <= 10000) {
        // let lastFive = aboveAvg.splice(aboveAvg.length - 5, 5); // just splice or slice from 0 to 5
        let lastFive = aboveAvg.splice(0, 5);
        // lastFive.sort((a, b) => b - a);
        console.log(lastFive.join(' '));
    } else if (aboveAvg.length <= 0) {
        console.log('No');
    } else {
        // console.log(aboveAvg.sort((a, b) => b - a).join(' '));
        console.log(aboveAvg.join(' '));
    }
}

 

Alternative code:

function solve(input) {
    const numberArray = input.split(' ').map(Number);
    const numbersAverage = numberArray.reduce((acc, curr, index) => {
        acc += curr;
        return acc;
    }, 0) / numberArray.length;
    const finalArray = numberArray.filter((num) => num > numbersAverage);

    if (finalArray.length === 0) {
        console.log("No");
    } else if (finalArray.length > 5) {
        const slicedArray = finalArray.slice(0, 5);
        console.log(slicedArray.join(' '));
    } else {
        console.log(finalArray.join(' '));
    }
}

 

1
chakarov15 avatar chakarov15 2 Точки

Много благодаря!

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