Loading...

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

msmilkoff avatar msmilkoff 338 Точки

[Exam Problems] Java Fundamentals Retake - Problem{2} - Weird Script

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

Ето тази част от условието:

1-26 are lowercase a-z, 27-52 are uppercase A-Z, 53-78 are a-z again, 79-104 are A-Z, and so on …

Тагове:
1
Fundamentals Module
RoYaL avatar RoYaL Trainer 6849 Точки
Best Answer

Това означава, че ако получиш числото 3, трябва да изведеш буквата 'c'. Ако получиш 29, трябва да изведеш буквата 'C'. Ако получиш 55, трябва пак да изведеш малко 'c'.

Първото нещо, което трябва да направиш според мен е да оптимизираш полученото число, така че винаги да се свежда до 1-26 или 27-52.

Ако разделиш с остатък 55 на 52 (всичките възможости на големи и малки букви са 2x26 = 52), то ще получиш отново 3. Така мап-ваш по естествен начин 55 към 3 и в двата случая получаваш 3.

От тук нататък трябва да намериш как от 3 да върнеш 'c'. Единият вариант е if(num == 1) {return 'a';} if(num == 2) { return 'b'; } if(num == 3) { return 'c'; } (и така до 52). Другият вариант е да се заиграеш с ASCII таблицата, т.е. към 3 да добавиш char-a 'a' минус 1.

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

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