agentex
offline
Опыт:
34,834Активность: |
Получить 3 последних цифры числа
Сабж, токо без строк и циклов.
Юзаю такую конструкцию: Код:
но иногда получается неправильное число, например если h = 1050011, результат i будет 10, а не 11. а такая погрешность в моей системе не допустима, поэтому прошу помощи у вас! |
09.04.2009, 13:32 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
а че просто X mod 1000 уже не катит? |
09.04.2009, 13:33 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
NETRAT мб и катит просто не шарю я в этих делимых и делителях ) можеш обьяснить че делает mod? и конретный код дай плз
|
09.04.2009, 13:35 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
остаток от деления на твое число дает
Артте добавил: agentex, не ожидал от тебя такого) 11 mod 2=1 10 mod 10=0 15 mod 4=3 16 mod 5=1 Артте добавил: следовательно на 10, 100, и 1000 и т.д. дают последние цифры числа, количество которых равно кол-ву нулей в числе на которое делишь) |
09.04.2009, 13:38 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
эм а собственно какая тогда разница между этим
Код:
и этим Код:
? agentex добавил: т.е. divident - Это делимое, divisor - делитель? |
09.04.2009, 13:43 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
я вообще не понимаю при чем тут тип real... ModuloInteger(X,1000) |
09.04.2009, 13:45 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
а что во втором h? |
09.04.2009, 13:47 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
если брать функцию ModuloInteger, то смысл этого:
Код:
за гранью моего понимания.. |
09.04.2009, 13:47 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
Цитата:
да Артте добавил: agentex а оно правильно работает? о_О |
|
09.04.2009, 13:48 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Код:
согласен, это проехали. agentex добавил: Код:
что? agentex добавил: h это 1050011 |
09.04.2009, 13:49 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
Цитата:
|
|
09.04.2009, 13:49 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Цитата:
если я правльно понимаю, сначала выполняется действие в скобках, потом умножение? это же бред, всегда будет получаться 0 agentex добавил: Артте, это БЖ функция из жаса. Код:
|
|
09.04.2009, 13:51 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
где-то здесь http://ru.wikipedia.org/wiki/Деление_с_остатком
|
09.04.2009, 13:51 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
agentex
и я о том же..ща пойду проверю эту функцию в варе, мб там шаманские действия какие-то Артте добавил: оно работает..я в растерянности и в сомнении, что что-то понимаю |
09.04.2009, 13:55 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
проверил, и вправду работает.. походу в жасе своя арифметика
спс NETRAT |
09.04.2009, 13:56 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
исходное число (dividend / divisor) делим его на делитель, т.к. делитель у нас целое число, то значение вырожение автоматически приводится к целому, т.е. это равносильно R2I (dividend / divisor) * divisor после того как привели к целому, умножаем снова на это число, т.к. после приведения у нас обнулились первые 3 цифры, то полученное число будет исходным 3 последнии цифры которого - нули dividend - (dividend / divisor) * divisor исходное число минус исходное число последнии цифры которого нули, даст то что находится на нулях |
|
09.04.2009, 13:59 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
работает она благодаря неявному преобразованию типов кстате, процессору куда понятнее команды div и mod чем хитровымученное деление с приведением к типу real |
09.04.2009, 13:59 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Цитата:
так, остается 1050 Цитата:
1050000 Цитата:
1050011-1050000 = 11 точняк, все оказывается так просто.. спс за подробное разьяснение Джон Цитата:
- ключевая фраза |
||||
09.04.2009, 14:05 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|