Loading...

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

inaivanova1990 avatar inaivanova1990 33 Точки

Задача 9. Сума от две числа, от Nested Loops - More Exercises

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

https://pastebin.com/NHhdHsJ1

9.Сума от две числа

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

Вход

Входът се чете от конзолата и се състои от три реда:

  • Първи редначало на интервалацяло число в интервала [1...999]
  • Втори редкрай на интервалацяло число в интервала [по-голямо от първото число...1000]
  • Трети ред – магическото число – цяло число в интервала [1...10000]

Изход

На конзолата трябва да се отпечата един ред, според резултата:

  • Ако е намерена комбинация чиито сбор на числата е равен на магическото число
    • "Combination N:{пореден номер} ({първото число} + {второ число} = {магическото число})"
  • Ако не е намерена комбинация отговаряща на условието
    • "{броят на всички комбинации} combinations - neither equals {магическото число}"

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

Вход

Изход

Обяснения

Вход

Изход

1

10

5

Combination N:4 (1 + 4 = 5)

 Всичски комбинации  от две числа между 1 и 10 са:

1 1, 1 2, 1 3, 1 4, 1 5, ... 2 1, 2 2, ... 4 9, 4 10, 5 1 ... 10 9, 10 10

Първата комбинация, чиито сбор на числата е равен на магическото число 5 е четвъртата (1 и 4)

 

88

888

1000

Combination N:20025 (112 + 888 = 1000)

Вход

Изход

Обяснения

Вход

Изход

23

24

20

4 combinations - neither equals 20

Всичски комбинации  от две числа между 23 и 24 са: 23 23, 23 24, 24 23, 24 24 (общо 4)

Няма двойки числа, чиито сбор е равен на магическото 20

88

888

2000

641601 combinations - neither equals 2000

Тагове:
0
Programming Basics
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Code is fine, just a second break; validation had to be inserted to interrupt the second for-loop when a valid combination between two numbers was found.

function solve(input) {
    let start = Number(input.shift());
    let final = Number(input.shift());
    let magicNum = Number(input.shift());
    let combinationsAmount = 0;
    let currentSum = 0;
    let numberFound = false;

    for (let i = start; i <= final; i++) {
        for (let j = start; j <= final; j++) {
            currentSum = i + j;
            combinationsAmount++;
            if (currentSum === magicNum) {
                // console.log("Combination N:" + combinations + " " + "(" + (i + " + " + j + " = " + magicNum) + ")");
                console.log(`Combination N:${combinationsAmount} (${i} + ${j} = ${magicNum})`);
                numberFound = true;
                break;
            }
        }
        if (numberFound) {
            break;
        }
    }

    if (currentSum !== magicNum) {
        // console.log(combinations + " combinations - neither equals " + magicNum);
        console.log(`${combinationsAmount} combinations - neither equals ${magicNum}`);
    }
}

 

0
inaivanova1990 avatar inaivanova1990 33 Точки

Благодаря много

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