М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Ivanuk13102000
Ivanuk13102000
19.03.2023 08:43 •  Информатика

Ниже записана программа. получив на вход число x, эта программа печатает два числа. укажите набольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 24. var x, a, b : integer; begin readln(x); a : = 0; b : = 1; while x > 0 do begin a : = a + 1; b : = b * (x mod 8); x : = x div 8; end; writeln(a); write(b); end.

👇
Ответ:
andriytustanov
andriytustanov
19.03.2023
В цикле а увеличивается каждый раз на 1, значит, цикл идет 3 раза.
b каждый раз умножается на остаток деления х на 8.
Получается 24 = 1*4*6 = 2*3*4 = 2*2*6
х каждый раз целочисленно делится на 8. Последний раз получается 0.
Пусть остатки были равны 1, 4 и 6.
Тогда число х должно быть равно 1+(4+6*8)*8 = 417.
Пусть остатки были равны 2, 3 и 4.
Тогда число х должно быть равно 2+(3+4*8)*8 = 282.
Пусть остатки были равны 2, 2 и 6.
Тогда число х должно быть равно 2+(2+6*8)*8 = 402.
Наибольшее из чисел - 417.
4,5(1 оценок)
Открыть все ответы
Ответ:
stqz
stqz
19.03.2023
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество судей:');
  Assert(n.InRange(3,5),'Неверное количество судей, разрешено 3,4 или 5');
  var a:=ReadArrReal('Введите оценки:',n);
  if n>3 then Writeln(' ',a.OrderBy(t->t).ToArray[1:n-1].Average:0:4)
  else begin
    var m:=a.Average;
    var b:=a.Select(t->(t,Abs(t-m))).OrderByDescending(t->t[1]).ToArray;
    if Abs(b[0][1]-b[1][1])<1e-5 then Writeln(' ',m:0:4)
    else Writeln(' ',b.Skip(1).Select(t->t[0]).Average:0:4)
    end
end.

2. А в школах часто все еще учат писать так:

var
  a,d:array[1..5] of real;
  n,i,imax,imin,j:integer;
  s,avg:real;

begin
  Write('Количество судей: '); Read(n);
  if (n<3) or (n>5) then
    Writeln('Неверное количество судей, разрешено 3,4 или 5')
  else begin
    Write('Введите оценки: ');
    for i:=1 to n do Read(a[i]);
    if n>3 then begin
      imax:=1; imin:=1;
      for i:=2 to n do
        if a[i]<a[imin] then imin:=i
        else
          if a[i]>a[imax] then imax:=i;
      s:=0;
      a[imax]:=0;
      a[imin]:=0;
      for i:=1 to n do s:=s+a[i];
      avg:=s/(n-2);
      Writeln(' ',avg:0:4)
      end
    else begin
      s:=0;
      for i:=1 to n do s:=s+a[i];
      avg:=s/n;
      for i:=1 to n do d[i]:=Abs(a[i]-avg);
      for i:=1 to n-1 do
        for j:=i+1 to n do
          if d[i]<d[j] then begin
            s:=d[i]; d[i]:=d[j]; d[j]:=s
            end;
      if Abs(d[1]-d[2])<1e-5 then Writeln(' ',avg:0:4)
      else begin
        s:=0;
        for i:=1 to n do
          if a[i]<>a[1] then s:=s+a[i];
        avg:=s/(n-1);
        Writeln(' ',avg:0:4)
        end
      end
    end
end.
4,4(64 оценок)
Ответ:
Anastasia9311
Anastasia9311
19.03.2023
((3 + 1) * 3) * 3 = 36
((3) * 3 + 1 + 1 + 1) * 3 = 36
((3) * 3 + 1 + 1) * 3 + 1 + 1 + 1 = 36
((3) * 3 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 = 36
((3) * 3) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
(3) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36
ответ 16

def f0(number, log) #
  v = 1
  n = number + v
  log += " + #{v}"
  # log += "[" + n.to_s + "] "
  return [n, log]
end

def f1(number, log) #
  v = 3
  n = number * v
  log = "(#{log}) * #{v}"
  # log += "[" + n.to_s + "] "
  return [n, log]
end

def countWays(start_num, end_num, op_numbers, max_steps = 0)
  ways = {}
  ways.store(start_num.to_s, start_num)

  max_steps = max_steps == 0 ? (start_num - end_num).abs : max_steps
  count = 0

  for steps in 1..max_steps
      # puts "steps = #{steps}"
      new_ways = {}
      ways.each_pair{|log, num|

          for k in 0..op_numbers-1
              num1, log1 = f0(num, log) if k == 0
              num1, log1 = f1(num, log) if k == 1
              num1, log1 = f2(num, log) if k == 2

              if num1 == end_num
                  # and log.include?('[8]')
              then
                  log1 += " = " + end_num.to_s
                  count += 1
                  puts log1
              elsif num1.between?(start_num, end_num)
                  new_ways.store(log1, num1)
              else
                  # log1 = log1 + " = " + num1.to_s + " BAD "
                  # puts log1
              end
          end
      }
      # p [steps, ways.size, new_ways.size]
      ways = new_ways
  end
  return count
end
4,6(24 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ