Loading...
L0ngM4n avatar L0ngM4n 6 Точки

04. Longest Alphabetical Word нужда от разяснение

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

Може ли някой да ми обясни защо това от снимката дава съответния резултат.

https://drive.google.com/file/d/0B9VG3V3U3sF0MUlUWjdlLVRsanM/view?usp=sharing

 

Взето е от задачатра от линка по долу.

https://softuni.bg/downloads/svn/csharp-basics/Exams/2014-04-14-1Morning/Problem04-Longest-Alphabetical-Word.zip

0
Programming Basics 19/01/2016 15:39:16
kiso_blg avatar kiso_blg 57 Точки

Не преобразъваш char-a в int. В случя взимаш стойността на char-a от ASCII таблицата и става 53 % 18 = 5. Тябва да го преобразуваш (ch - 48) % 18.

Ще добавя, че има и по-лесен начин за сравняване на string-ове, но те съветвам да го направиш този и после да потърсиш по-лесния начин.

0
19/01/2016 16:03:41
L0ngM4n avatar L0ngM4n 6 Точки

Благодаря но мисля че не ме разбра. Това е авторското решение не моето. И не разбирам как (0 × 5 + 5) % 18 дава 5.

Защото 5 / 18 =0.2777777778

И този остатък не ми е ясно как стана на 5

0
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

Все пак използваш остатъчно деление, следователно 18 се съдържа 0 цели пъти в 5 и остатъка е 5. За всички числа до 18 ще ти връща същото,

5 % 18 -> 5

6 % 18 -> 6

7 % 18 -> 7

....

17 % 18 -> 17

18 % 18 -> 0

19 % 18 -> 1

Малко трудно обяснявам, надявам се да ми разбереш идеята. Проверява колко цели пъти се намира знаменателя в числителя и връща остатъка от резултата.


 

1
enevlogiev avatar enevlogiev 1168 Точки

При целочислено делене 5 / 18 не е ~0.2, а 0.

Обратната формула е 0 * 18 + 5 (oстатък) = 5;

Подобно е и при 23 / 18, целочисленото делене дава 1.

Съответно 1 * 18 + 5 (остатък) = 23;

2
L0ngM4n avatar L0ngM4n 6 Точки

Благодаря ви много. Сега разбрах.

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