Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для lord voldemort
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 29

Числа, делящиеся на 41

17.07.2013, 11:51. Показов 1870. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Среди всех чисел от 0 до 1 000 000, делящихся на 41, нужно найти то число, у которого больше всего троек в записи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2013, 11:51
Ответы с готовыми решениями:

На интервале найти числа, делящиеся на 5 с остатком от деления (дробной частью вещественного числа), равным 4
. Даны целые числа N и M. Найти на интервале <от меньшего из них до большего из них> все числа, делящиеся на 5 с остатком от деления...

Получить в новом файле компоненты исходного файла, делящиеся на 3 и не делящиеся на 7.
1) Дан файл, компоненты которого являются целыми числами. Получить в новом файле компоненты исходного файла, делящиеся на 3 и не делящиеся...

Составить программу, которая выводит на монитор числа, делящиеся на 3
Составить программу, которая с помощью цикла выводит на монитор числа, делящиеся на 3.

9
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.07.2013, 12:08
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
var i,j,k,c,a,mx:longint;
begin
clrscr;
mx:=0;
i:=41;
while i<=1000000 do
 begin
  j:=i;
  k:=0;
  while j>0 do
   begin
    c:=j mod 10;
    if c=3 then k:=k+1;
    j:=j div 10
   end;
  if k>mx then
   begin
    mx:=k;
    a:=i
   end;
  i:=i+41;
 end;
write('Максимальное число троек в числе, кратном 41 a=',a);
readln
end.
1
 Аватар для lord voldemort
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 29
17.07.2013, 12:36  [ТС]
обалдеть, спасибо!!!!
0
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
20.07.2013, 14:14
А теперь мастер-класс - то же самое, но без использования операций деления:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
type
  numarray = array[0..7] of byte;
 
var
  amax: numarray;
  kmax: integer;
  a, b: numarray;
  i, k: integer;
  r, c: byte;
 
begin
  for i:=0 to 7 do amax[i]:=0;
  kmax:=0;
 
  a:=amax; a[1]:=4; a[0]:=1;
  b:=a;
 
  k:=0;
  while TRUE do begin
    c:=0;
    i:=0;
    while (i<=2) do begin
      r:=a[i]+b[i]+c;
      if (r>9) then begin
        r:=r-10; c:=1;
        end
      else
        c:=0;
      if (a[i]=3) then begin
        if (r<>3) then dec(k);
        end
      else begin
        if (r=3) then inc(k);
        end;
      a[i]:=r;
      i:=i+1;
      end;
    while (c<>0) do begin
      if (a[i]=9) then begin
        a[i]:=0; c:=1;
        end
      else begin
        inc(a[i]); c:=0;
        case a[i] of
          3: inc(k);
          4: dec(k);
          end;
        end;
      i:=i+1;
      end;
    if (a[6]<>0) then break;
    if (k>kmax) then begin
      amax:=a;
      kmax:=k;
      end;
    end;
 
  if (kmax=0) then
    writeln('Not found')
  else begin
    i:=7; while (amax[i]=0) do dec(i);
    for i:=i downto 0 do write(chr(amax[i]+ord('0')));
    writeln;
    end;
 
  readln;
end.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
20.07.2013, 22:43
Один круче другого, <censored>, и у обоих нерациональные решения.
Puporev, а не проще было бы перебрать только числа, кратные 41? Время обработки сократилось бы в 40 раз.
Напильнег, Ваш "мастер-класс" напоминает хирургическую операцию удаления гланд через пятую точку. Можно, конечно, но зачем? Ограничений на операцию деления в условии нет.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
21.07.2013, 00:43
кот Бегемот, вы уж извините,но
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Puporev, а не проще было бы перебрать только числа, кратные 41? Время обработки сократилось бы в 40 раз.
разве только их эта прога не перебирает?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while i<=1000000 do
 begin
  j:=i;
  k:=0;
  while j>0 do //Считаем количество цифр 3 
   begin 
    c:=j mod 10; 
    if c=3 then k:=k+1;
    j:=j div 10
   end;
  if k>mx then //если кол-во больше максимального
   begin
    mx:=k;//Записываем макс. количество цифр 3
    a:=i//и само число
   end;
  i:=i+41;//Ну и увеличиваем на 41,т.е перебираем все что на 41 делятся
 end;
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
21.07.2013, 01:11
да, пардон, до конца не дочитал, смутил верхний предел, Puporevу мои извинения.
0
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
22.07.2013, 23:44
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Напильнег, Ваш "мастер-класс" напоминает хирургическую операцию удаления гланд через пятую точку. Можно, конечно, но зачем? Ограничений на операцию деления в условии нет.
Вас наверное очень удивит, уважаемый, но операция деления - это весьма затратная операция, и применяется она в этой задаче, если ее использовать, очень много. Так что даже несмотря на то, что при заданных ограничениях на современных (и даже не очень) компьютерах разницу воочию почувствовать не удастся, решение без делений представляет интерес как в принципе более эффективное.

И уж если говорить про гланды, то использование процедуры str в задаче тоже не запрещено, а ее использование дает самое эффективное решение с точки зрения программирования, и второе по эффективности в смысле быстродействия, т.к. str использует более эффективный алгоритм преобразования числа из двоичного представления в десятичное, чем выделение десятичных цифр путем деления. <когда же здесь сделают свистящий смайлик>

Добавлено через 3 минуты
Цитата Сообщение от кот Бегемот Посмотреть сообщение
да, пардон, до конца не дочитал, смутил верхний предел
Теперь дочитал, и что? Тебе бабушка в детстве не говорила, что изменять значение параметра цикла внутри тела цикла - жесткий моветон, который следует выжигать каленым железом? Бери теперь свои извинения обратно [вырезано]
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
23.07.2013, 00:05
Цитата Сообщение от Напильнег Посмотреть сообщение
Теперь дочитал, и что? Тебе бабушка в детстве не говорила, что изменять значение параметра цикла внутри тела цикла - жесткий моветон, который следует выжигать каленым железом? Бери теперь свои извинения обратно [вырезано].
Напильнег, уж извини но это бред.Если был бы цикл счетчик,вроде for i:=1 to.. то да i внутри цикла нельзя менять,но тут же цикл с предусловием.Или тебе бабушка не рассказала что циклы трех видов бывают?
0
Я не экстрасенс
 Аватар для barbudo59
382 / 339 / 34
Регистрация: 22.01.2013
Сообщений: 1,126
23.07.2013, 01:09

Не по теме:

А что скажете насчет нестандартного подхода?:umnik:


Сначала маленькое допущение... Типа мы уже знаем, что 1000000/41=24390,...
Значит, 5 троек уже не светит, 1-я тройка тоже. Поэтому
Pascal
1
2
3
writeln('Максимальное число троек в числах, кратных 41');
for i:=0 to 2 do
writeln(i*10000 + 3333);

P.S. Если допущение "не проходит", его несложно оформить программно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2013, 01:09
Помогаю со студенческими работами здесь

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

Все числа стоящие на четных местах и делящиеся на 5 заменить нулями
15 случайных чисел - все числа стоящие на четных местах и делящиеся на 5 заменить нулями. - числа на нечетных местах кратные 3...

Вывести все числа, не превосходящие N и делящиеся на каждую из своих цифр
Составьте программу вывода на экран всех натуральных чисел, не превосходящих N и делящихся на каждую из своих цифр.

Найти все натуральные числа,не превосходящие n и делящиеся на каждую из своих цифр
Найти все натуральные числа,не превосходящие n и делящиеся на каждую из своих цифр(в десятичной системе счисления). Люди пожалуйста кто...

Выводит на экран все натуральные числа на отрезке, делящиеся на каждую из своих цифр
Напишите программу, которая вводит натуральные числа а и b и выводит на экран все натуральные числа на отрезке , делящиеся на каждую из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru