Loading...
Malkovi4 avatar Malkovi4 2 Точки

05. Challenge the Wedding допълнителната

Здравейте колеги,

Почнах допълнителните задачи за вложени цикли и 5тата се дърпа от стотака.
Дава ми 30/100 като покривам нулевите тестове.

Възможно ли е някой да хвърли едно око на кода ми?

Условие:

Провокирани от сватбата си, Михаела и Иван решават да предоставят нова услуга на клиенти на ресторанта си, а именно вечеря за запознанства - "Предизвикай Сватбата". Напишете програма, която отпечатва всички възможни срещи на клиентите на ресторанта. При настаняване всеки мъж и всяка жена получават талончета с поредни номера стартирайки от 1. Ако бъдат заети всички маси, програмата трябва да приключи. Всяка маса има две места.
Вход
От конзолата се четат точно 3 числа, всяко на отделен ред:
Броя клиенти мъже - цяло число в интервала [1...100]
Броя клиенти жени - цяло число в интервала [1...100]
Максималният брой маси - цяло число в интервала [1...100]
Изход
На конзолата се принтират на един ред, разделени с интервал всички срещи в следният формат:
({№ клиент} <-> {№ клиент}) ({№ клиент} <-> {№ клиент}) ...
 

Примерен вход и изход
Вход    Изход    Обяснения
2
2
6    (1 <-> 1) (1 <-> 2) (2 <-> 1) (2 <-> 2)
    Мъж 1 се среща с Жена 1, Мъж 1 се среща с Жена 2, Мъж 2 се среща с Жена 1, Мъж 2 се среща с Жена 2.
2
2
3    (1 <-> 1) (1 <-> 2) (2 <-> 1)     Мъж 1 се среща с Жена 1, Мъж 1 се среща с Жена 2, Мъж 2 се среща с Жена 1. И трите маси за заети и програмата приключва.
5
8
40    (1 <-> 1) (1 <-> 2) (1 <-> 3) (1 <-> 4) (1 <-> 5) (1 <-> 6) (1 <-> 7) (1 <-> 8) (2 <-> 1) (2 <-> 2) (2 <-> 3) (2 <-> 4) (2 <-> 5) (2 <-> 6) (2 <-> 7) (2 <-> 8) (3 <-> 1) (3 <-> 2) (3 <-> 3) (3 <-> 4) (3 <-> 5) (3 <-> 6) (3 <-> 7) (3 <-> 8) (4 <-> 1) (4 <-> 2) (4 <-> 3) (4 <-> 4) (4 <-> 5) (4 <-> 6) (4 <-> 7) (4 <-> 8) (5 <-> 1) (5 <-> 2) (5 <-> 3) (5 <-> 4) (5 <-> 5) (5 <-> 6) (5 <-> 7) (5 <-> 8) 

 

кода ми:

function wedding(input){

    let men = Number(input[0]);

    let women = Number(input[1]);

    let tables = Number(input[2]);

    let counter = 0;

    let couples = "";

 

    for(let i = 1; i<=men;i++){

        for(let j = 1; j<=women;j++){

            counter++;

            couples += `(${i} <-> ${j}) `;

            if(counter==tables){

                break;

            }

            

        }

    }

    console.log(couples);

}

 

Тагове:
willystyle avatar willystyle 2472 Точки
Best Answer

добави още една проверка за изход в края на блока и на първия цикъл, както си направил във вътрешния (break излиза само от един цикъл, текущия):

function wedding(input) {
    let men = Number(input[0]);
    let women = Number(input[1]);
    let tables = Number(input[2]);
    let counter = 0;
    let couples = '';
    for (let i = 1; i <= men; i++) {
        for (let j = 1; j <= women; j++) {
            counter++;
            couples += `(${i} <-> ${j}) `;
            if (counter == tables) {
                break;
            }
        }
        if (counter == tables) {
            break;
        }
    }
    console.log(couples);
}

или печатай и излез с return:
 

function wedding([men, women, tables]) {
    let counter = 0;
    let couples = '';
    for (let i = 1; i <= men; i++) {
        for (let j = 1; j <= women; j++) {
            counter++;
            couples += `(${i} <-> ${j}) `;
            if (counter == tables) {
                console.log(couples);
                return;
            }
        }
    }
    console.log(couples);
}

 

0
06/01/2020 14:52:24
Malkovi4 avatar Malkovi4 2 Точки

Благодаря много, @willystyle!

Първият вариянт върна 100/100.

Вторият 80/100, като на 3тия Zero test не принтира нищо.

 

1
willystyle avatar willystyle 2472 Точки

Странно, аз като ги пускам и двата дават по 100.

0
Malkovi4 avatar Malkovi4 2 Точки

Моя грешка.

Липсваше ми последния console.log, който е след циклите.
Махнал съм го поради някаква причина...

Отново благодаря много за помоща!

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