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

По каналу связи передается последовательность положительных чисел ,все числа не превышают 1000,их количество заранее неизвестно. каждое число передается отдельно. признаком конца передаваемой последовательности является число 0. после числа 0 передается контрольное значение- наибольшее число из последовательности,которое делится на 10. напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. программа должна напечатать отчет следующего вида: получено полученное контрольное значение: вычесленное контрольное значение: контроль пройден (или- контроль не пройден)

👇
Ответ:
// PascalABC.NET 3.1, сборка 1201 от 18.03.2016
begin
  var k:=0;
  var n:=ReadInteger();
  var nmax:=0;
  while n<>0 do begin
    Inc(k);
    if n mod 10 = 0 then
      if n>nmax then nmax:=n;
    n:=ReadInteger()  
    end;
  var cntrl:=ReadInteger();
  Writeln('Получено ',k,' чисел');
  Writeln('Полученное контрольное значение: ',cntrl);
  Writeln('Вычисленное контрольное значение: ',nmax);
  if cntrl=nmax then Writeln('Контроль пройден')
  else Writeln('Контроль не пройден')
end.

Тестовое решение:
53
16
40
9
10
32
74
0
40
Получено 7 чисел
Полученное контрольное значение: 40
Вычисленное контрольное значение: 40
Контроль пройден
4,6(87 оценок)
Открыть все ответы
Ответ:
1Айжан11
1Айжан11
10.01.2023

#include <iostream>

typedef long long   ll;

using namespace std;

bool ll_is_valid(ll t, ll N, ll x, ll y)

{

return  t / x + (t - x) / y >= N;

}

ll f(ll N, ll x, ll y)

{

   ll R = 1;

   while (!ll_is_valid(R,N,x,y)) R *= 2;

ll L = R / 2;

while(R - L > 1)

{

 ll M   =   (L + R) / 2;

 

 if (!ll_is_valid(M,N,x,y)) {L = M;}

 else {R = M;}

}

return  R;

}

int  main()

{

ll N,x,y;

cin >> N >> x >> y;

if(x > y) swap( x, y );  

cout << f(N, x, y) <<  std::endl;

}

4,4(89 оценок)
Ответ:
ushelemet
ushelemet
10.01.2023
Добрый день! К сожалению я не работаю с C++, но если это то вот эта задача в Pascal
VAR a,b,c,d:REAL;
PROCEDURE Print_S(x,y,z:REAL);
 VAR  p,S:REAL;
 begin  If ((x+y)>z) and ((x+z)>y) and ((y+z)>x) then 
 begin   
p:=x+y+z;
S:=SQRT(p*(p-x)*(p-y)*(p-z));
WriteLn('S= ',S);
end
 else
Writeln('Треугольник не существует!');
end;
BEGIN Write('a= ');
ReadLn(a);
 Write('b= ');
 ReadLn(b);
 Write('c= ');
 ReadLn(c);
 Write('d= ');
 ReadLn(d);
 WriteLn;
 WriteLn('Стороны ',a,'; ',b,'; ',c);
 Print_S(a,b,c);
 WriteLn;
 WriteLn('Стороны ',a,'; ',b,'; ',d);
 Print_S(a,b,d);
 WriteLn;
 WriteLn('Стороны ',a,'; ',c,'; ',d); 
Print_S(a,c,d);
 WriteLn;
 WriteLn('Стороны ',b,'; ',c,'; ',d);
 Print_S(b,c,d);
END.
4,8(28 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ