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

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

+ Нов въпрос
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
Основи на програмирането 19/01/2016 15:39:16
kiso_blg avatar kiso_blg 56 Точки

Не преобразъваш 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 SoftUni Team Trainer 556 Точки

Все пак използваш остатъчно деление, следователно 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 1169 Точки

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

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

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

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

2