✎ Задать свой вопрос   *более 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, просмотры: ☺ 5291 ⌚ 10.04.2014. информатика 10-11 класс

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

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

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

Последние решения
Неравенство можно умножать га положительное число .
Умножаем все части на (3/5):

0<(3/5)x<(3/5)*40
0<(3/5)x< 24

О т в е т. 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23
✎ к задаче 44430
Примем весь бак за 1.

1:18=1/18 бака заполняется за 1 мин через два крана

1:30=1/30 бака заполняется за 1 мин через первый кран

1/18-1/30=5/90-3/90=2/90=1/45 бака заполняется за 1 мин через второй кран

1:1/45=1*45/1=45 минут потребуется, чтобы наполнить бак через второй кран

✎ к задаче 44426
2х-(5/12)=2*(5/2)-(5/12)=5-(5/12)=4 целых 7/12

|4 целых 7/12|=4 целых 7/12

2*|4 целых 7/12|=2*(4 целых 7/12)=2*(55/12)=110/12=55/6

(55/6)+(1/8)=(55*4+3)/24=223/24=9 целых 7/24
✎ к задаче 44427
(прикреплено изображение)
✎ к задаче 44423
7) По формулам приведения:
cos(3π+3 α )=-cos3 α
cos(1,5π-3 α )=-sin 3 α

1-cos3 α *cos2 α +sin3 α *sin2 α =1-(cos3 α *cos2 α-sin3 α *sin2 α)=

=1-cos(5 α )=2 sin^2(2,5 α )

Применили формулы:
[r]cos( α + β )=cos α cos β -sin α *sin β [/r]
cos3 α *cos2 α-sin3 α *sin2 α=cos(3 α +2 α )=cos5 α
и
[r]2sin^2 α =1-cos2 α [/r]
1-cos5 α =2sin^2(5 α /2) или 1-cos 5 α =2sin^22,5x

8)
Решается аналогично.
Однотипные задачи не решаю.
Достаточно того, что показано в первой задаче.

Учитесь решать самостоятельно.
✎ к задаче 44423