var a:array [1..20] of integer;
i:integer;
p:real;
begin
p:=1;
for i:= 1 to 20 do
begin
a[i]:= Random(46)-20;
if i mod 2 = 0 then p:=p*a[i]
end;
writeln('Массив: ',a);
writeln('Произведение элементов с чётными номерами равно: ',p);
end.
Будем искать сначала двузначные числа, удовлетворяющие условию задачи.
Обозначим через x и y искомые цифры числа. Очевидно, что x и y должны быть значениями из интервала [1..3].
Тогда xy(5) = yx(4) ⇒ 5*x+y = 4*y+x ⇒ 4*x = 3*y
Очевидно, что x и y должны быть значениями целыми положительными из интервала [1..3] и, следовательно, двузначных чисел, удовлетворяющих условию задачи, не существует.
Рассмотрим трехзначные числа, обозначив старшую цифру через a:
axy(5) = ayx(4) ⇒ 5*5*a+5*x+y = 4*4*a+4*y+x ⇒ 9*a+4*x = 3*y
Пусть a=1, тогда:
9+4*x = 3*y
Так как ни x, ни y не являются старшой цифрой, то оба значения могут быть из интервала [0..3].
При x=0 получим подходящее нам значение y=3.
Итак, 103(5) = 5*5+3 = 28(10); 130(4) = 4*4+3*4 = 28(10)
Рассмотрев аналогичным образом x=1;2;3, а также a=2 и a=3, увидим, что других чисел, удовлетворяющих условию, нет.
Ответ: 28
===== PascalABC.NET =====
function ЧислоВторыхМаксимумов(a: array of integer) :=
a.GroupBy(p -> p) // сгруппировали одинаковые
.Select(p -> (p.Count, p.Key)) // создали кортежи (кол, значение)
.OrderByDescending(p -> p[1]) // отсортировали по убыванию значений
.Skip(1) // пропустили первый элемент
.Take(1) // взяли только второй элемент
.Select(p -> p[0]); // выделили из кортежа количество
begin
var n:=ReadInteger('n ='); // длина массива
var a:=ArrRandom(n, 1, 10); // инициализируем массив
a.Println; // выводим его
ЧислоВторыхМаксимумов(a).Println // вызываем функцию, выводим результат
end.
Только 1 задание сделаю
1 5 7 9 12
#include<iostream>
int main(){
int A;
std::cin >> A;
std::cout << A*A;
return 0;
}