маша9393
18.03.2023 01:27

Системы счисления (тест 4) ction=139&probid=4
Эта задача с открытыми тестами. Ее решением является набор ответов, а не программа на языке
программирования. Тесты указаны в самом условии, от вас требуется лишь ввести ответы на них в
тестирующую систему.
Недавно на уроке информатики Вася узнал о позиционных системах счисления. Ему очень понравилось
представлять разные числа в двоичной, троичной и даже девятеричной системе счисления. Помимо этого Васе
нравится записывать цифры числа в обратном порядке. Вася берет произвольное натуральное число хи
выполняет последовательно следующие три действия:
1. Вася переводит число X во все системы счисления с основанием от 2 до 9;
2. Все числа, полученные на предыдущем шаге, Вася записывает в обратном порядке, отбрасывая при этом у всех
перевернутых чисел ведущие нули;
3. Вася находит максимальное из чисел, полученных на втором шаге, сравнивая значения этих чисел, как будто
они записаны в десятичной системе счисления.
Какой результат получит Вася после выполнения трех шагов своего алгоритма для числа Х?
во все системы счисления с
Примечание
Например, Вася хочет решить задачу для числа X = 8. Переведем число 8
основаниями k, где k принимает значения от 2 до 9.
При k = 2 получаем 810 10002;
при k = 3 получаем 810 = 223;
при k = 4 получаем 810 = 204
при k = 5 получаем 810 135;
при k = 6 получаем 810
126;
при k = 7 получаем 810 = 11;
при k = 8 получаем 810
108;
при k = 9 получаем 810 = 80.
Теперь запишем цифры данных чисел в обратном порядке и отбросим ведущие нули. Получим числа 1 (для k = 2),
22 (для k = 3), 2 (для k = 4), 31 (для k = 5), 21 (для k = 6), 11 (для k = 7), 1 (для k = 8), 8 (для k = 9).
Теперь рассматриваем эти числа, как будто они записаны в десятичной системе счисления. Тогда максимальное из
них равно 31, что и является ответом для исходного числа X = 8.
• Тест №1: х = 4;
Close Firefox
s911-03-32-047 [Школьн...​


Системы счисления (тест 4) ction=139&probid=4Эта задача с открытыми тестами. Ее решением являетс

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
dolloc
16.05.2021 16:32
Из-за дурацкого сбоя этого сервиса при сохранении ответа пропал получасовой набор формул в модераторов удалить этот ответ.

P.S. Набираешь ответ - как по минному полю идешь. При нажатии "сохранить" неизвестно что произойти может. Например, при случайном нажатии "сохранить ответ" (каждый может ошибиться) нет анализа, того, что в поле набора данных не пусто и весь этот набор формул мгновенно "улетает в никуда".
Я уж не говорю о постоянных "Вы были отключены от сервера".

И еще. Поскольку автор вопроса не виноват, даю два "голых" (без формул) решения.

1. Рекурсивная программа (как не надо решать подобные задачи)

{ рекурcивная программа }
function prod(a,b:integer):real;
var
  i:integer;
  p:real;
begin
  p:=1;
  for i:=a to b do p:=p*i;
  prod:=p
end;

function pow2(n:integer):integer;
var
  i,p:integer;
begin
  p:=1;
  for i:=1 to n do p:=p*2;
  pow2:=p
end;

function an(n:integer):real;
begin
  if n=1 then an:=0.5
  else an:=an(n-1)*n/prod(pow2(n-1)+1,pow2(n))
end;

var
  s:real;
  i,n:integer;
begin
  Write('n='); Read(n);
  s:=0;
  for i:=1 to n do s:=s+an(i);
  Writeln(s)
end.

Пример:
n=4
0.58348214285829

2. А вот рекуррентная, которую можно написать, если немного подумать.

{ рекуррентная программа }
var
  a,p,s:real;
  i,j,n,lo,hi:integer;
begin
  Write('n='); Read(n);
  a:=0.5; s:=a; lo:=1; hi:=2;
  for i:=2 to n do begin
    p:=1; lo:=hi+1; hi:=hi*2;
    for j:=lo to hi do p:=p*j;
    a:=a*i/p;
    s:=s+a
    end;
  Writeln(s)
end.

Пример
n=4
0.58348214285829
0,0(0 оценок)
Ответ:
eromadima
25.10.2020 14:45
begin
  var n:=readInteger('Число элементов массива-');
  var a:=ArrRandom(n,-50,50); a.Println;
  for var i:=1 to n-2 do a[i]:=2*(i+1);
  a.Println
end.

Пример
Число элементов массива- 10
-40 4 -49 0 -47 41 49 33 -31 -1
-40 4 6 8 10 12 14 16 18 -1

begin
  var n:=readInteger('Число элементов массива-');
  var a:=ArrRandom(n,-50,50); a.Println;
  var i1:=a.IndexMax;
  var i2:=a.IndexMin;
  Writeln(a[min(i1,i2)+1:max(i1,i2)].Where(x->x<0).Sum)
end.

Пример
Число элементов массива- 18
-45 -30 -49 -44 34 -5 -12 -28 22 14 -39 -20 -46 50 6 21 20 -47
-194

begin
  var a:=ReadlnString('Введите строку;').ToCharArray;
  // было сделано так только ради получения массива символов,
  // который на самом деле только мешает
  Writeln(a);
  if Pos('...',a.JoinIntoString)>0 then
    Writeln('Троеточие в массиве есть')
  else Writeln('Троеточия в массиве нет')
end.

Пример
Введите строку; 6ye$% DFDRT..drrtert...DFDGD
[6,y,e,$,%, ,D,F,D,R,T,.,.,d,r,r,t,e,r,t,.,.,.,D,F,D,G,D]
Троеточие в массиве есть
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота