На вході маємо список з цілих чисел. Програма повинна створити новий з квадратів чисел введеного списку. Після цього користувач у новому рядку вводе елемент першого списку, а на вході маємо елементи другого який йому відповідає в Python
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
3. Заполнить массив случайными целыми числами (0-10). Найти сумму четных и нечетных значений.
begin var a:=ArrRandom(ReadInteger('n='),0,10); a.Println; var so:=a.Where(t->t.IsOdd).Sum; var se:=a.Where(t->t.IsEven).Sum; Writeln('Сумма четных значений равна ',so,', нечетных ',se) end.
Несмотря на длинное условие, эта задача совсем не сложная. Очевидно, что здесь речь идет о двух системах счисления, причем основание одной из систем в два раза больше, чем основание другой. По записи выражений (163*11):5+391 и (454*15-26):5+2633 можно предположить, что в первом случае основание меньше, а во втором - больше. Пусть x - основание меньшей системы счисления, тогда второе основание будет 2x. Переведем данные выражения в десятичную систему счисления по известному правилу: 1) ((1*(2x)^2+6*(2x)+3)*(1*2x+1)):5+(3*(2x)^2+9*2x+1)= ((4*x^2+12*x+3)*(2*x+1)):5+(12*x^2+18*x+1) 2) ((4*x^2+5*x+4)*(1*x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3)= ((4*x^2+5*x+4)*(x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3) После раскрытия скобок и приведения подобных, с учетом того, что числа в выражениях должны быть равны, получим: 8*x^3+88*x^2+108*x+8 = 14*x^3+55*x^2+42*x+29 т.е. 6*x^3-33*x^2-66*x+21=0 Очевидно, что нас интересуют только целочисленные положительные решения. Ещё раз посмотрим на выражение (454*15-26):5+2633 Из него видно, что основание системы счисления должно быть не меньше 7. Подставим 7 в уравнение, и! сразу обнаруживаем, что это и есть подходящее нам решение. Таким образом, в "десятке" одного было 7 человек, а в "десятке" другого - 14. Общее количество "шпиёнов" у каждого = 7820
Внимание! Если программа не работает, обновите версию!
3. Заполнить массив случайными целыми числами (0-10). Найти сумму четных и нечетных значений.
begin
var a:=ArrRandom(ReadInteger('n='),0,10); a.Println;
var so:=a.Where(t->t.IsOdd).Sum;
var se:=a.Where(t->t.IsEven).Sum;
Writeln('Сумма четных значений равна ',so,', нечетных ',se)
end.
Пример
n= 15
4 2 1 9 1 1 6 5 10 8 3 9 7 7 9
Сумма четных значений равна 52, нечетных 30
5. Заполнить массив целыми числами с клавиатуры. Найти произведение всех элементов массива.
Ограничим ввод нулем, поскольку ввод нуля обнулит все произведение.
begin
ReadSeqIntegerWhile(t->t<>0).Aggregate(BigInteger(1),(p,q)->p*q).Println
end.
Пример
-4523 235423 6734532 2342354 67345423 2342342 -43532423 0
115347094687898985235964440890392383424914416
7. Заполнить массив случайными целыми числами в интервале от 0 до 18. Найти наибольший элемент среди всех чисел массива и указать его номер.
begin
var a:=ArrRandom(ReadInteger('n='),0,18); a.Println;
var imax:=a.IndexMax;
Writeln('Наибольший элемент ',a[imax],' имеет номер ',imax+1)
end.
Пример
n= 13
1 4 8 18 14 14 7 1 12 15 16 12 11
Наибольший элемент 18 имеет номер 4
1) ((1*(2x)^2+6*(2x)+3)*(1*2x+1)):5+(3*(2x)^2+9*2x+1)=
((4*x^2+12*x+3)*(2*x+1)):5+(12*x^2+18*x+1)
2) ((4*x^2+5*x+4)*(1*x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3)=
((4*x^2+5*x+4)*(x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3)
После раскрытия скобок и приведения подобных, с учетом того, что числа в выражениях должны быть равны, получим:
8*x^3+88*x^2+108*x+8 = 14*x^3+55*x^2+42*x+29
т.е. 6*x^3-33*x^2-66*x+21=0
Очевидно, что нас интересуют только целочисленные положительные решения.
Ещё раз посмотрим на выражение (454*15-26):5+2633
Из него видно, что основание системы счисления должно быть не меньше 7.
Подставим 7 в уравнение, и! сразу обнаруживаем, что это и есть подходящее нам решение.
Таким образом, в "десятке" одного было 7 человек, а в "десятке" другого - 14.
Общее количество "шпиёнов" у каждого = 7820