IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> 121/11 YES!, Проверка делимости.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Для делимости числа на 11 необходимо, чтобы разность между суммой цифр, стоящих на четных местах, и суммой цифр, стоящих на нечетных местах, делилась на 11.

Приведу небольшие примеры:
121/11=11. Вывод: yes;
1211/11=110,(09). Вывод: no;

Я в принципе понимаю что данная задача лёгкая, но я хочу поинтересовться по поводу условия задачи:
Там написано, цитирую:
Цитата
"...чтобы разность между суммой цифр, стоящих на четных местах, и суммой цифр, стоящих на нечетных местах, делилась на 11."


Если подбирать под мой пример(1), то я так понимаю это выглядит так: 2-(1+1)/11.
Как видите по примеру нельзя вычислить что данное число делится на 11.

ОБЪЯСНИТЕ СМЫСЛ!


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Обычное для таких задач ограничение - 109, то есть, один миллиард. Если больше - придется использовать более емкие типы: dword, int64, qword... Ну, или тогда уже переходить к строке.

P.S. Кстати, по условию в оригинале - строка она тоже не метод, там говорится о числах 1 .. 1010000, тут уж только посимвольное чтение, да и сумму надо сделать типа LongInt, с Integer-ом может быть переполнение:

var
ch: char;
curr, s: longint;

begin
curr := 1; s := 0;
while not eoln do begin
read(ch);
s := s + curr * (ord(ch) - ord('0'));
curr := - curr;
end;
if (s = 0) or (abs(s) mod 11 = 0) then writeln('yes')
else writeln('no');
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.06.2024 13:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name