Loading...
Saraalkadi avatar Saraalkadi 28 Точки

Задача 03.Lucky Numbers

Здравейте, имам проблем със задача 03.Щастливи числа от Nested Loops - More Exercises.

Във VS-Code кода върви, но в Judge дава 10/100:
https://judge.softuni.org/Contests/Practice/Index/1381#2

   

function luckyNumbers(input) {

 

    let N = Number(input[0]);

 

    for (let a = 1; a <= 9; a++) {

        for (let b = 1; b <= 9; b++) {

            for (let c = 1; c <= 9; c++) {

                d = (a + b) - c;

 

                if ((d <= 9) && ((a + b) === (c + d)) && (d > 0) && (a + b === N)) {

                    console.log(`${a}${b}${c}${d}`);

                }

            }

        }

    }

}

 

3.Щастливи числа

Да се напише програма, която прочита едно цяло число N и генерира всички възможни "щастливи" и различни 4-цифрени числа(всяка цифра от числото е в интервала [1...9]).

Числото трябва да отговаря на следните условия:

Щастливо число е 4-цифрено число, на което сбора от първите две цифри е равен на сбора от последните две. Числото N трябва да се дели без остатък от сбора на първите две цифри на "щастливото" число.

Вход

Входът се чете от конзолата и се състои от едно цяло число в интервала [2...10000]

Изход

На конзолата трябва да се отпечатат всички "щастливи" и различни 4-цифрени числа, разделени с интервал

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

Вход

Изход

Обяснения

3

1212 1221 2112 2121

И четирите числа са "щастливи"

3 / (1+2) = 1 – остатък 0

7

1616 1625 1634 1643 1652 1661 2516 2525 2534 2543 2552 2561 3416 3425 3434 3443 3452 3461 4316 4325 4334 4343 4352 4361 5216 5225 5234 5243 5252 5261 6116 6125 6134 6143 6152 6161

Всички числа са "щастливи"

7 / (1+6) = 1 – остатък 0

7 / (2+5) = 1 – остатък 0

7 / (3+4) = 1 – остатък 0

24

1111 1212 1221 1313 1322 1331 1515 1524 1533 1542 1551 1717 1726 1735 1744 1753 1762 1771 2112 2121 2213 2222 2231 2415 2424 2433 2442 2451 2617 2626 2635 2644 2653 2662 2671 3113 3122 3131 3315 3324 3333 3342 3351 3517 3526 3535 3544 3553 3562 3571 3939 3948 3957 3966 3975 3984 3993 4215 4224 4233 4242 4251 4417 4426 4435 4444 4453 4462 4471 4839 4848 4857 4866 4875 4884 4893 5115 5124 5133 5142 5151 5317 5326 5335 5344 5353 5362 5371 5739 5748 5757 5766 5775 5784 5793 6217 6226 6235 6244 6253 6262 6271 6639 6648 6657 6666 6675 6684 6693 7117 7126 7135 7144 7153 7162 7171 7539 7548 7557 7566 7575 7584 7593 8439 8448 8457 8466 8475 8484 8493 9339 9348 9357 9366 9375 9384 9393

 

 

 

Тагове:
0
Programming Basics 28/03/2022 15:32:51
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

;-)

function luckyNumbers(input) {
  let N = Number(input);
  let stringResult = '';

  // Щастливо число е 4-цифрено число
  for (let a = 1; a <= 9; a++) {
    for (let b = 1; b <= 9; b++) {
      for (let c = 1; c <= 9; c++) {
        for (let d = 1; d <= 9; d++) {
          // if ((d <= 9) && ((a + b) === (c + d)) && (d > 0) && (a + b === N)) {

          // на което сбора от първите две цифри е равен на сбора от последните две. 
          // Числото N трябва да се дели без остатък от сбора на първите две цифри
          // на "щастливото" число.
          if (((a + b) === (c + d)) && (N % (a + b) === 0)) {
            // console.log(`${a}${b}${c}${d}`);
            stringResult += `${a}${b}${c}${d}` + ' ';
          }
        }
      }
    }
  }
  
  // На конзолата трябва да се отпечатат всички "щастливи" и различни 
  // 4-цифрени числа, разделени с интервал
  console.log(stringResult)
}

 

0
Saraalkadi avatar Saraalkadi 28 Точки

Благодаря!

1
alsavov avatar alsavov 7 Точки
function solve(n) {
    let buff = "";

    for (let i = 1111; i <= 9999; i++) {
        i = i.toString();

        let isValid =
            +i[0] + +i[1] === +i[2] + +i[3] &&
            n % (+i[0] + +i[1]) === 0 &&
            n !== +i[0] &&
            n !== +i[1] &&
            n !== +i[2] &&
            n !== +i[3] &&
            +i[0] !== 0 &&
            +i[1] !== 0 &&
            +i[2] !== 0 &&
            +i[3] !== 0;

        if (isValid) {
            buff += i + " ";
        }
    }
    console.log(buff);
}

Решение с един цикъл ;)

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