Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Делимость на 3 
:(
    Опции темы
banan
Дата 8.12.2004, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



Работает,спасибо
PM MAIL   Вверх
Pakshin A. S.
Дата 8.12.2004, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Вот, есть решение здеся... http://pakshin.com.ru/forum/index.php?show...5&st=0&#entry17 smile
PM   Вверх
Zero
Дата 8.12.2004, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Pakshin A. S., зачем так сложно, вопервых он уже вроде сам решил, во вторых можно намного проще: smile
Код

program pr;
var
i,k,n,sum:longint;
begin
 sum:=0; k:=0;
 write('Введите N=');
 readln(n);
 for i:=1 to n do
   begin
     sum:=sum+i;
     if (sum mod 3)=0 then k:=k+1;
   end;
 writeln('На 3 делится "',k,'" последовательностей')
end.

Да ктому же тут доплнительное "банановое" условие выполняется: 1<=N<=2000000 smile

Это сообщение отредактировал(а) Zero - 8.12.2004, 23:51
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 9.12.2004, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Zerosum переполнится при N = 2000000, может быть, хотя вряд ли... избегаем этих недоразумений...
поэтому делаем так:
Код

var
i,j:longint;
n:longint;
col:longint;
sum:longint; {может даже integer сойдеть} {Сумма цифр}
begin
readln(n);
col:=0;
sum:=0;
for i:=1 to n do
 begin
  j:=i;
  while j <> 0 do
   begin
    sum:=sum + j mod 10;
    j:=j div 10;
   end;
  if (sum mod 3) = 0 {Сумма делится на 3 => число делится на 3}
   then
    begin
     sum:=0; {Вот и не переполнится...}
     col:=col + 1;
    end;
 end;
writeln(col);
readln;
end.

А это уже и на n=2147483647 работать будет!!!
Пояснение:
шаг рассматриваемое число
1 1
2 12
3 3
4 4
5 45
6 6
7 7
8 78
9 9
10 10
11 1011
12 12
13 13
14 1314
15 15
16 16
17 1617
и т. п.....
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.