xeniakudriavtseva
30.10.2022 19:46

Сос

даны два целых числа a и b, где 1 ≤ b ≤ a ≤ 109. необходимо вычислить результат s, выполнив последовательно следующие действия:

переведите числа a и b в двоичную систему счисления
допишите слева к числам a и b ведущие нули так, чтобы в них стало по 32 двоичных цифры
в числе b замените все ноли на единицы, а единицы – на ноли
вычислите s как следующую сумму: s = a + b + 1
если в числе s оказалось больше 32 двоичных цифр, то оставьте только 32 младшие цифры, а лишние цифры слева сотрите
переведите s в десятичную систему счисления и выведите в ответ
рассмотрим пример. пусть a = 5, b = 3.

в двоичной системе a = 101, b = 11.
допишем нули: a = 101, b = 11
инвертируем все цифры во втором числе: b = 00
вычислим s = a + b + 1 = 110.
в числе s оказалось 33 цифры, поэтому отбросим первую: s = 10.
переводим в десятичную систему: s = 2.
пример
входные данные
5
3
выходные данные
2

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
//Pascal
var
  A: array [1 .. 5, 1 .. 4] of integer;
  V: array [1 .. 20] of integer;
  i, j, z: byte;
  SUM1, SUM2, SUM3, MIN: integer;
begin
  randomize;
  writeln('***Сгенерированный массив***');
  SUM1 := 0; SUM2 := 0; SUM3 := 0;
  for i := 1 to 5 do
  begin
    for j := 1 to 4 do
    begin
      A[i, j] := random(30);
      if ((A[i, j] >= 0) and (A[i, j] <= 5)) then SUM1 := SUM1 + A[i, j];
      if ((A[i, j] >= 5) and (A[i, j] <= 15)) then SUM2 := SUM2 + A[i, j];
      write(A[i, j]:6)
    end;
    writeln;
  end;
  writeln('Сумма элементов [0 5] = ', SUM1);
  writeln('Сумма элементов [5 15] = ', SUM2);
  MIN := A[3, 1];
  for j := 1 to 4 do if A[3, j] < MIN then MIN := A[3, j];
  writeln('Минимальный элемент в третьей строке = ', MIN);
  writeln('***Вектор***');
  j := 1;
  z := 0;
  while (z < 20) do
  begin
    for i := 1 to 5 do
    begin
      z := z + 1;
      V[z] := A[i, j];
    end;
    j := j + 1;
  end;
  for i := 1 to 20 do writeln(V[i]:6);
  for i := 20 downto 10 do SUM3 := SUM3 + V[i];
  writeln('Сумма последних 10-ти элементов = ', SUM3);
  readln;
end.
0,0(0 оценок)
Ответ:
mashka0414
20.03.2021 19:43
1. Современное решение (быстро, просто и легко)
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('Ср.арифм: ',ReadSeqRealWhile(k->k>=0).Average:0:4)
end.

Пример
23 11.7 0 12.9 16.7 13 -12
Ср.арифм: 12.8833

2. Школьный вариант в стиле "1983г." (Turbo Pascal 7.0)

uses Crt;
var
  n:integer;
  x,a:real;
begin
  a:=0;
  n:=0;
  repeat
    Read(x);
    if x>=0 then begin
      n:=n+1;
      a:=a+x
      end
  until x<0;
  a:=a/n;
  Writeln('Ср.арифм: ',a:0:4);
  ReadKey
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота