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

Въпрос остносно задачата с Бонус точките.

Написах задачата малко помощ от подсказките обаче едно не ми стана ясно, не разбирам как така като написах командата if (num % 10 ==5) програмата започна да чете само числата завършващи на 5, разбрах защо if (num % 2 ==0) чете само четните числа, предполагам, че ако напиша if (num % 1 ==0)  ще ми чете само нечетните, но защо и от къде стана така, че горната команда (num % 10 ==5) чете само числата завършващи на 5? За някои въпросът ми може и да е глупав, но за мен е много важно да разбера защо става така, за да мога да го използвам за напред, а не просто да го копирам от някъде и да ми върши работа без да знам защо.

Благодаря предварително!

Тагове:
0
Programming Basics
boykopk avatar boykopk 147 Точки

(num % 1 ==0)  това ще ти чете всички, понеже всички се делят на 1 без остатък.

За нечетните е (num % 2 !=0).

(num % 10 ==5) ти дава тези който завъшват на 5, защото като разделиш на 10 само тези които завършват на 5 имат остатък 5.

С num % 10 == х, можеш да вземеш последното число (х е от 0 до 9).

0
23/10/2017 12:03:16
veronikaaa86 avatar veronikaaa86 365 Точки

Например 15 % 10 == 5, защото 15 делено на 10 (цяло число) е равно на 1 (1 по 10 = 10) с остатък 5 - това е модулното деление - колко цели пъти се съдържа делителя в делимото и получаваме остатъка от това деление 15 - 10 = 5;

Ако беше 16 % 10 резултата щеше да е остатък 6, т.е. всяко число, което модулно разделим на 10, остатъка му е последната цифра от него.

Дано съм обяснила така, че да го разбереш :)

0
ad2bg avatar ad2bg 123 Точки

Здравей,

x % y ти връща резултат равен на ОСТАТЪКА от целочислено деление на x върху y. T.e. напр.  23 % 5 връща 3.   т.е. имаме 4 * 5 + 3 при което четворката би се върната като резултат от 23/5 (за int аргументи) или (int)(23.0/5.0) при аргументиот тип double, а именно тройката е остатъка и съответно тя се връща от 23 % 5.

num % 1 връща резултат нула за всяко число.

При нечетните имаме  num % 2   дава резултат единица.

x % 5  ще ти дава нула за всяко което се дели на 5;

x % 10 ще ти дава нула за всяко, което завършва на нула; и сътветно пет, за всяко което завършва на пет.

Надявам се да съм помогнал.

0
s_sotirova avatar s_sotirova 4 Точки

if (num%10==5) извършва деление на 10 като взима остатъка от делението и ако той е 5 тогава израза в скобите е true, т.е. ако num = 1075 тогава 1075%10 = 5 (остатъка е 5)

if (num%2==0) отделя само четни числа, защото за всяко четно число разделено на 2 остатъка е 0.

Ако искаш да отделиш нечетните числа трябва if (num%2!=0), а не това което е написано if (num % 1 ==0).

 

0
niki_dalgia avatar niki_dalgia 5 Точки

Благодаря, разбрах го :)

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