Помогите плз) Надо написать программу ** любом ПаскалеПрограммист ** Северном полюсе...

0 голосов
27 просмотров

Помогите плз) Надо написать программу на любом ПаскалеПрограммист на Северном полюсе работал за компьютером в варежках и поэтому мог набирать только 0 и 1, а клавиша 0 запала. Сможет ли он набрать число, состоящее только из единиц и при этом кратное заданному N?Входные данныеПрограмме дано число N (1 ≤ N ≤ 10^6).Выходные данныеВывести минимальное число, удволетворяющее требованию, или "NO" , если такого числа не существует.Если что, это 1453 задачка на Информатиксе


Информатика (134 баллов) | 27 просмотров
Дано ответов: 2
0 голосов

Ответ:

Код дан в приложении.

Объяснение:

Поддерживать само число на паскале будет довольно сложно без использования biginteger. Будем поддерживать k - количество единиц в нашем числе, и ans - остаток от деления нашего числа на N. Если он в какой-то момент получился равен нулю, это значит, что мы нашли число. В нем k единиц. Мы будем продолжать поиски 3 * 10⁷ раз. Если так ничего и не нашли - выводим NO.


image
(3.7k баллов)
0 голосов

//PascalABC.NET

//В задаче есть ограничение по времени в 1 секунду

//поэтому была использована функция milliseconds

//которая возвращает кол-во миллисекунд с момента

//начала работы программы

var

 N, cur, count: uint64;

begin

 read(N);

 cur := 1;

 count := 0;

 while (cur <> 0) and (milliseconds() / 1000 < 0.78) do

 begin

   cur := (cur * 10 + 1) mod N;  

   count := count + 1;

 end;

 if (cur = 0) then write('1' * (count = 1 ? count : count + 1))

 else write('NO');

end.

(3.7k баллов)
0

А какая версия паскаля?

0

хз я в информатикс заливаю

0
0

Там есть компилятор Free Pascal 3.0.2, а есть PascalABC 3.4.2

0

Мое решение проверялось под Free Pascal, но и на PascalABC тоже заходит.

0

ок, щас проверю

0

да все работает

0

сори дексель

0

как перевыбрать лучший ответ?

0

А вот никак))