Сдать решение задачи C1-Гипотеза Коллатца Задача C1: Гипотеза Коллатца
Недавно Ваня наткнулся на интересную гипотезу, являющуюся одной из нерешенных проблем математики. Она известна под названием «гипотеза Коллатца» и заключается в следующем:

«Выберем любое натуральное число x. Если оно чётное, то поделим его на 2 (получим x / 2), а если нечётное, то умножим на 3 и прибавим 1 (получим 3x + 1). Над новым полученным числом (x / 2 или 3x + 1) выполним те же самые действия. Продолжив выполнять данные действия, рано или поздно мы получим 1, вне зависимости от изначального числа x ».

Ваня решил проверить данную гипотезу и попытаться найти контрпример для нее. Он перебрал много разных чисел, но каждый раз у него в итоге получалась 1. В какой-то момент Ваня устал и пошёл отдыхать, решив продолжить попытки опровержения гипотезы после небольшого перерыва. Но когда он снова вернулся к своим вычислениям, он обнаружил, что его младший брат пролил на бумаги с записями сок, и некоторые числа превратились в пятна. Ваня никогда не сдаётся, поэтому он решил попробовать восстановить числа, с которых начинал свои вычисления.

Ваня видит числа, с которых вычисления продолжаются, и по размеру пятна умеет вычислять, сколько именно чисел было пропущено в вычислениях. Причем он решил восстанавливать записи, исходя из предположения, что изначальное число было минимальным.

Зная количество размытых чисел N и число K, с которого продолжаются вычисления, определите минимальное число, с которого Ваня мог начинать свои вычисления.

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

В таком случае Ваня определит по пятну, что пропущенных чисел N = 2, и увидит, что вычисления продолжаются с числа K = 5. Так как N = 2, он мог получить K = 5 одним из двух :

20 > 10 > 5 дважды разделив на 2
3 > 10 > 5 сначала умножив на 3 и прибавив 1, а потом разделив на 2
Минимальное начальное число — 3.

Тест №1(задача C.1): N = 2, K = 7;
Тест №2(задача C.2): N = 2, K = 32;
Тест №3(задача C.3): N = 2, K = 112;
Тест №4(задача C.4): N = 3, K = 11;
Тест №5(задача C.5): N = 3, K = 47;
Тест №6(задача C.6): N = 3, K = 512;
Тест №7(задача C.7): N = 4, K = 26;
Тест №8(задача C.8): N = 4, K = 215;
Тест №9(задача C.9): N = 5, K = 100;
Тест №10(задача C.10): N = 5, K = 1000.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
autistic04
18.03.2021 10:02
// Паскаль
// Программа поддерживает латиницу, кириллицу и дефисы

const
  // Первая буквы, англ. "a" - 65, но может быть дефис #45
  first_letter = #45;
  // Последняя буквы, рус. "я"
  last_letter = #1103;

var
  x: string;
  i: integer;
  c: char;
  // Сколько раз встречает буква в слове
  count: array[first_letter..last_letter] of integer;
begin
  readln(x);
  // Обнуляем массив
  for c := first_letter to last_letter do
    count[c] := 0;
  // Подсчитываем буквы в слове
  for i := 1 to length(x) do
    inc(count[x[i]]);
  // Выводим слово без букв, встречающихся 3 раза
  for i := 1 to length(x) do
    if count[x[i]] <> 3 then
      write(x[i])
end.
0,0(0 оценок)
Ответ:
OlyaKasyanenko28
19.02.2020 23:10
Процедурой:

// Возводит действилельное число x в целую степень n
Procedure Pow(Const X:real; Const n:integer; Var St:real);
Var i:integer;
Begin
St:=1;
For i:= 1 to n do
    St:=St*x;
End;

Var
   x,y,St:real;
   n:integer;
Begin
y:=0;
Write('x = ');ReadLn(x);
Write('n = ');ReadLn(n);
For n:= 1 to n do
    Begin
    Pow(x,n,St);
    y:=y+Cos(St);
    End;
WriteLn('y = ',y);
End.

Функцией:

// Возводит действилельное число x в целую степень n
Function Pow(Const X:real; Const n:integer):real;
Var i:integer;
Begin
result:=1;
For i:= 1 to n do
    result:=result*x;
End;
Var
   x,y:real;
   n:integer;
Begin
y:=0;
Write('x = ');ReadLn(x);
Write('n = ');ReadLn(n);
For n:= 1 to n do
    y:=y+Cos(Pow(x,n));
WriteLn('y = ',y);
End.

Циклом:

Var
   x,y,St:real;
   n:integer;
Begin
y:=0;
Write('x = ');ReadLn(x);
Write('n = ');ReadLn(n);
St:=1;
For n:= 1 to n do
    Begin
    St:=St*x;
    y:=y+Cos(St);
    End;
WriteLn('y = ',y);
End.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота