Sonia369
08.09.2022 06:45

Отгадайте имя ученого. Об окружении этого ученого известно следующее: О родителях Мать - незаурядная женщина, математик, поэтесса, философ Отец – великий английский поэт

О первых учителях Одним из них был шотландский математик Огастес де Морган

О сотрудничестве с английским ученым и
изобретателем - Союз математика и инженера привел к невероятному творческому взлету. В работах (1843 г.) этого ученого дана высокая оценка достоинства машины английского изобретателя, которую нельзя рассматривать только в качестве счетного устройства. Говорилось о том, что это механизм для выполнения самой разнообразной работы с символами, который позволяет на высшем уровне устанавливать связи между абстрактным мыслительным процессом и машинными операциями. В будущем может быть использован для анализа этот новый, ничем не ограниченный и мощный язык.

Об увековечивании - памяти В честь этого ученого в Америке названы два небольших города — в штатах Оклахома и Алабама. Министерство Обороны США утвердило для американских вооруженных сил, а в дальнейшем

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Kuro111
20.07.2020 14:03

Привожу 2 варианта решения.

Вариант 1: файл 1.cpp

Решение основано на обыкновенном вычислении периода дроби (для дробей, имеющих конечную десятичную запись(например, 1/2=0,5), период вычисляется для формы с нулем в периоде(то есть для 1/2 берется форма 0,5(0))) с деления столбиком.

Замечание: сам алгоритм деления в столбик я писал достаточно давно, и для других программ, поэтому его реализация в данном коде может быть неоптимальной (в плане памяти или кол-ва операций), однако он работает.

Вариант 2: файл 3.cpp

Если немного углубиться в математику, можно найти теорему, по которой дробь, представленная в виде m/n , где НОД(m, n) = 1, имеет конечную десятичную запись тогда и только тогда, когда ее знаменатель n = 5^{a_1}*2^{a_2}; a_1, a_2\in Z, a_1, a_2\geq0. Тогда достаточно сократить числитель и знаменатель на общие множители, а далее выполнить проверку знаменателя.

0,0(0 оценок)
Ответ:
alef911
01.11.2022 16:09

При x = 68;

Как проверял:

var

 x, a, b, i: integer;

begin

 for i := 1 to 1000 do

 begin

   x := i;

   a := 0;  

   b := 0;

   while x > 0 do

   begin

     a := a + 1;

     if b < (x mod 8)

       then b := x mod 8;

     x := x div 8;

   end;

   if (a = 3) and (b = 4) Then

   begin

     writeln(i);

     break;

   end;

 end;  

end.

Взял 1000 потому что думал, что должно быть меньше. Если бы программа не сработала взял бы либо отрицательные числа, либо больше тысячи (возможно бы пришлось изменить тип данных).

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота