Среди чисел от 1 до 10^10000 найти такие, что в своей записи имеют цифру 4.
Проблема не в поиске цифры 4, а проблема в диапазоне. Как работать в таком большом диапазоне?
Кто знает, помогите. Спасибо!
			
		Модератор: Модераторы


Снег Север писал(а):Но думаю, дело намного проще - надо в строке, изображающей число, найти символ '4'

{$H+}
Uses SysUtils;
Var
  i, j: integer;
  s, n: string;
  F1, F2: TextFile;
  CurrNum: integer;
  Yes: boolean;
begin
  AssignFile(F1, 'numbers.txt');
  AssignFile(F2, 'the4yes.txt');
  Rewrite(F1);
  Rewrite(F2);
  
  Randomize;
  
  For i:=1 To 10000 Do
  Begin
    s:='';
    Yes:=False;
    For j:=1 To i Do
    Begin
      CurrNum:=Random(10);
      If CurrNum=4 Then
        Yes:=True;
      Str(CurrNum, n);
      s:=s+n;
    End;
    WriteLn(F1, s);
    If Yes Then
      WriteLn(F2, s);
  End;
  CloseFile(F1);
  CloseFile(F2);
end.


Дож писал(а):Таких чисел 10^10000-9^10000, навряд ли человечество создало достаточно жёстких дисков, чтобы уместить весь их список.
 Пока что задача описана в чисто теоретическом смысле и практически выглядит как полная бессмыслица. Дело в том, что в таких больших числах, если условиться, что нужны именно длинные числа, цифра "4" бкдет присутствовать в каждом числе, так что тут даже искать ничего не надо...
 Пока что задача описана в чисто теоретическом смысле и практически выглядит как полная бессмыслица. Дело в том, что в таких больших числах, если условиться, что нужны именно длинные числа, цифра "4" бкдет присутствовать в каждом числе, так что тут даже искать ничего не надо... 
Пока что задача описана в чисто теоретическом смысле и практически выглядит как полная бессмыслица

Дож писал(а):Поэтому нужно уточнить задачу у тс.

Evgen писал(а):Тут понятно,что тип longint не подходит для такого большого N,
 -D
 -DEvgen писал(а):и задача должна выполнятся 2 сек., память - 256 МіБ)


Evgen писал(а):может какие то динамические массивы, но как с ними работать я не знаю.


Лекс Айрин писал(а):скорее всего, задача немного сложнее. Сама постановка намекает на использование какого-то трюка. Ведь просто нереально на таком оборудовании перелопатить столько чисел за такое время. Имхо, надо искать какую-то зависимость.
 Так вот, вне зависимости от кол-ва ОЗУ, генерация чисел будет очень-очень-очень долгая...
 Так вот, вне зависимости от кол-ва ОЗУ, генерация чисел будет очень-очень-очень долгая...



VirtUX писал(а):Где это есть в условии?"
Evgen писал(а): Имеется N коробок с номерами от 1 до N
...
N от 1 до 10^10000
Evgen писал(а):Всем спасибо, но пока ответа не увидел на свой вопрос. Уточняю условие задачи. Имеется N коробок с номерами от 1 до N. Подсчитать количество коробок в номере которых встречается цифра 4 (N от 1 до 10^10000 и задача должна выполнятся 2 сек., память - 256 МіБ).


sign писал(а):Возможно препод специально поставил такое условие, чтобы проверить, понимает студент вообще, что можно, а что нельзя?
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1