Loading...
krumkuzmov avatar krumkuzmov 5 Точки

Safe Passwords Generator

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

Моля за съдействие по задачата от JS Basics, More exercises - 07. Safe password generator.

Моето решение:

https://pastebin.com/DGVFqLWz

https://judge.softuni.bg/Contests/Submissions/View/13714172

Ето условието:

Генератор за сигурни пароли

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

Да се напише програма, която генерира серия от символи като в шаблона:

ABxyBA

като при всяко генериране на нов код, стойностите на символите се увеличават с 1. Ако A надхвърли 55, се връща на 35. Ако B надхвърли 96, се връща на 64.

Вход

От конзолата се чете 1 ред:

  • На първия ред a – цяло число в интервала [1 … 1000]
  • На втория ред b – цяло число в интервала [1 … 1000]
  • На третия ред максимален брой генерирани паролицяло число в интервала [1 … 1000000]

Ограничения:

  • е символ с ASCII стойност в диапазона [35… 55]
  • е символ с ASCII стойност в диапазона [64 … 96]
  • e цяло число в диапазона [1… a]
  • e цяло число в диапазона [1… b]

Изход:

Да се отпечата на конзолата:

  • Генерираният код. Ако броят на комбинациите е по-голям от максималния на кода, да се отпечата до подадената стойност, в противен случай да се отпечата до текущия брой на комбинациите.
Тагове:
0
Programming Basics
willystyle avatar willystyle 2472 Точки
Best Answer
function solve(input) {
    let number1 = +input.shift();
    let number2 = +input.shift();
    let maxPasswords = +input.shift();
    let passwordsCounter = 0;
    let symbol1 = 35;
    let symbol2 = 64;
    let combo = '';
    for (let symbol3 = 1; symbol3 <= number1; symbol3++) {
        for (let symbol4 = 1; symbol4 <= number2; symbol4++) {
            let codeToCharSymbol1 = String.fromCharCode(symbol1);
            let codeToCharSymbol2 = String.fromCharCode(symbol2);
            combo += `${codeToCharSymbol1}${codeToCharSymbol2}${symbol3}${symbol4}${codeToCharSymbol2}${codeToCharSymbol1}|`;
            passwordsCounter++;
            if (passwordsCounter >= maxPasswords) {
                console.log(combo);
                return;
            }
            symbol1++;
            if (symbol1 > 55) {
                symbol1 = 35;
            }
            symbol2++;
            if (symbol2 > 96) {
                symbol2 = 64;
            }
        }
    }
    console.log(combo);
}

 

0
krumkuzmov avatar krumkuzmov 5 Точки

Благодаря за пореден път! Да разбирам, че не е нужно да правя цикли и за symbol1 и symbol2? Не е ли същата логика, ако го правя с цикъл или просто така си е наумил Judge?

 

1
willystyle avatar willystyle 2472 Точки

Няма нужда от цикли за а symbol1 и symbol2, понеже те се инкрементират във вложения цикъл, и така е по условие.

0
krumkuzmov avatar krumkuzmov 5 Точки

Да, видях, но и с цикъл също ще се инкрементират. Както и да - благодаря още веднъж!

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