Loading...

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

Mahakali avatar Mahakali 1 Точки

Изпит_Задача_5 - Генератор на тъпи пароли

Здравейте,

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

Ако някой може да обясни, ще съм много благодарен.

Задача 5. Генератор за тъпи пароли

Да се напише програма, която въвежда две цели числа n и l и генерира по азбучен ред всички възможни тъпи” пароли, които се състоят от следните 5 символа:

  • Символ 1: цифра от 1 до n.
  • Символ 2: цифра от 1 до n.
  • Символ 3: малка буква измежду първите l букви на латинската азбука.
  • Символ 4: малка буква измежду първите l букви на латинската азбука.
  • Символ 5: цифра от 1 до n, по-голяма от първите 2 цифри.

Вход

Входът се чете от конзолата и се състои от две цели числа n и l в интервала [19], по едно на ред.

Изход

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

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

вход

изход

2

4

11aa2 11ab2 11ac2 11ad2 11ba2 11bb2 11bc2 11bd2 11ca2 11cb2 11cc2 11cd2 11da2 11db2 11dc2 11dd2

3

1

11aa2 11aa3 12aa3 21aa3 22aa3

3

2

11aa2 11aa3 11ab2 11ab3 11ba2 11ba3 11bb2 11bb3 12aa3 12ab3 12ba3 12bb3 21aa3 21ab3 21ba3 21bb3 22aa3 22ab3 22ba3 22bb3

4

2

11aa2 11aa3 11aa4 11ab2 11ab3 11ab4 11ba2 11ba3 11ba4 11bb2 11bb3 11bb4 12aa3 12aa4 12ab3 12ab4 12ba3 12ba4 12bb3 12bb4 13aa4 13ab4 13ba4 13bb4 21aa3 21aa4 21ab3 21ab4 21ba3 21ba4 21bb3 21bb4 22aa3 22aa4 22ab3 22ab4 22ba3 22ba4 22bb3 22bb4 23aa4 23ab4 23ba4 23bb4 31aa4 31ab4 31ba4 31bb4 32aa4 32ab4 32ba4 32bb4 33aa4 33ab4 33ba4 33bb4

 

Не мога да разбера THE ALGORITHM :(

0
Programming Basics
NonaG avatar NonaG 111 Точки

Ако анализираме това решение, например: https://github.com/GinkaGeorgieva/Programming-Basics/blob/Exams/StupidPasswordGeneration/Program.cs

В първия for-цикъл задаваш диапазона на първия символ, който трябва да се печата - Символ 1: цифра от 1 до n.

Във втория съответно - Символ 2: цифра от 1 до n.

И така до петия - Символ 5: цифра от 1 до n, по-голяма от първите 2 цифри.

Но понеже имаме още едно условие - цифра от 1 до n, по-голяма от първите 2 цифри, затова слагаме if с точно това ограничение - (m>i&&m>k) - при мен i и k  са индексите точно на първите две цифри (първите два цикъла), а m е индексът на петия цикъл.

Какво прави програмата: минава през всички цикли, като стига до най-вътрешния и започва да изпълнява него, докато не го изчерпи, след това се връща на по-външния (четвъртия), взима следващия индекс от него и пак влиза в петия, пак го изчерпва, пак в четвъртия и така, докато изчерпа и целия четвърти. След това взема следващия индекс от третия цикъл и започва пак да работи в четвъртия и петия...

Много е важно да използваш дебъгера и да видиш точно как става постъпково: F10 - начални данни в конзолата, и само F10 оттук нататък, за да проследиш точно последователността на алгоритъма. :)

1
Mahakali avatar Mahakali 1 Точки

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

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