✎ Задать свой вопрос   *более 30 000 пользователей получили ответ на «Решим всё»

Задача 896 По каналу связи передаётся

УСЛОВИЕ:

По каналу связи передаётся последовательность положительных целых
чисел, все числа не превышают 1000. Количество чисел известно, но может
быть очень велико. Затем передаётся контрольное значение
последовательности – наибольшее число R, удовлетворяющее следующим
условиям:
3) R – произведение двух различных переданных элементов
последовательности («различные» означает, что не рассматриваются
квадраты переданных чисел; допускаются произведения различных
элементов последовательности, равных по величине);
4) R делится на 21.
Если такого числа R нет, то контрольное значение полагается равным 0.
В результате помех при передаче как сами числа, так и контрольное значение
могут быть искажены.
Напишите эффективную, в том числе по используемой памяти, программу
(укажите используемую версию языка программирования, например, Borland
Pascal 7.0), которая будет проверять правильность контрольного значения.
Программа должна напечатать отчёт по следующей форме:
Вычисленное контрольное значение: …
Контроль пройден (или – Контроль не пройден)
Перед текстом программы кратко опишите используемый Вами алгоритм
решения.
На вход программе в первой строке подаётся количество чисел N. В каждой
из последующих N строк записано одно натуральное число, не превышающее
1000. В последней строке записано контрольное значение.
Пример входных данных:
6
70
21
997
7
9
300
21000
Пример выходных данных для приведённого выше примера входных данных:
Вычисленное контрольное значение: 21000
Контроль пройден

РЕШЕНИЕ:

var M7,M3,M21,R,MAX,dat,res,i,N: longint;
begin
M7 := 0;
M3 := 0;
M21 := 0;
MAX := 0;
readln(N);
for i := 1 to N do
begin
readln(dat);
if ((dat mod 7) = 0) and ((dat mod 3) > 0) and (dat > M7) then
M7 := dat;
if ((dat mod 3) = 0) and ((dat mod 7) > 0) and (dat > M3) then
M3 := dat;
if (dat mod 21 = 0) and (dat > M21) then
begin
if M21 > MAX then MAX := M21;
M21 := dat
end
else
if dat > MAX then
MAX := dat;
end;
readln(R);
if (M7*M3 < M21*MAX) then
res := M21*MAX
else
res := M7*M3;
writeln('Вычисленное контрольное значение: ',res);
if R = res then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.

Вопрос к решению?
Нашли ошибку?

ОТВЕТ:

в решение

Добавил slava191, просмотры: ☺ 5146 ⌚ 10.04.2014. информатика 10-11 класс

Решения пользователей

Увы, но свой вариант решения никто не написал... Будь первым!
Хочешь предложить свое решение? Войди и сделай это!

Написать комментарий

Последние решения
Вводим в рассмотрение события ( гипотезы):
H_(1)-"из первого ящика во второй переложили два белых шарика"
H_(2)-"из первого ящика во второй переложили два черных шарика"
H_(3)-"из первого ящика во второй переложили один белый и один черный или один черный и один белый шарик"

p(H_(1))=\frac{2}{6}\cdot\frac{1}{5}=\frac{2}{30}
p(H_(2))=\frac{4}{6}\cdot\frac{3}{5}=\frac{12}{30}
p(H_(3))=\frac{2}{6}\cdot\frac{4}{5}+\frac{4}{6}\cdot\frac{2}{5}=\frac{16}{30}

A-" из второго ящика вынут белый шарик"

p(A/H_(1))=\frac{5}{6}
p(A/H_(2))=\frac{3}{6}
p(A/H_(3))=\frac{4}{6}

По формуле полной вероятности:
p(A)=p(H_(1))*p(A/H_(1))+p(H_(2))*p(A/H_(2))+p(H_(3))*p(A/H_(3))=

=\frac{2}{30}\cdot\frac{5}{6}+\frac{12}{30}\cdot\frac{3}{6}+\frac{16}{30}\cdot\frac{4}{6}=\frac{11}{18}



✎ к задаче 40763
(прикреплено изображение)
✎ к задаче 40760
(прикреплено изображение)
✎ к задаче 40761
cos ∠ C=-3/4, значит угол С - тупой.
∠ С= ∠ B
∠ D= ∠ A - острые.

Сумма углов, прилежащих к боковым сторонам трапеции равна 180 градусов.

cos ∠ D=cos(180 ° - ∠ C)=-cos ∠ C=-(-3/4)=3/4

Теперь легко найти высоту трапеции и нижнее основание

Проводим высоты ВК и СМ из точек В и С на AD
КМ=ВС=5 см

AК=МD=СD*cos ∠ C=8*(3/4)=6
AD=AK+KM+MD=6+5+6=17

СM^2=CD^2-MD^2=8^2-6^2=64-36=28

CM=sqrt(28)=sqrt(4*7)=2sqrt(7)

S(трапеции)=(AD+BC)*CM/2=(17+5)*(2sqrt(7))/2=22sqrt(7)


(прикреплено изображение)
✎ к задаче 40761
(прикреплено изображение)
✎ к задаче 40755