Const maxn=15; var a: array[1..maxn] of integer; skv,prod,gr,i: integer; begin writeln('введите ',maxn,' чисел'); skv:=0; prod:=1; gr:=0; for i:=1 to maxn do begin write(i,': '); readln(a[i]); if a[i]<0 then skv:=skv+a[i]*a[i]; if (a[i] mod 2 = 0) and (i mod 2 = 0) then prod:=prod*a[i]; if abs(a[i])>100 then gr:=gr+1; end; writeln('сумма квадратов отрицательных: ',skv); writeln('произведение четных на четных местах: ',prod); writeln('больше 100 по модулю: ',gr); end.
введите 15 чисел 1: 151 2: -231 3: 104 4: 19 5: 36 6: -112 7: 5 8: 8 9: 11 10: 13 11: 45 12: 5 13: 6 14: 17 15: 19 сумма квадратов отрицательных: 65905 произведение четных на четных местах: -896 больше 100 по модулю: 4
machkura
07.02.2021
На каждом шаге имеет смысл менять два горшка с разными цветами. Поэтому всё получится, если роз, стоящих на чётных местах, будет столько же, сколько и фиалок на нечётных. При этом если тех и других k, то всего нужно k перестановок. Код (PascalABC.NET 3.2): begin var n := ReadInteger(); var roses := new integer[n]; var count_roses := 0; var violets := new integer[n]; var count_violets := 0; for var i := 1 to n do begin if ReadInteger() = i mod 2 then if i mod 2 = 0 then begin roses[count_roses] := i; inc(count_roses); end else begin violets[count_violets] := i; inc(count_violets); end; end; if count_roses = count_violets then begin writeln(count_roses); for var i := 0 to count_roses - 1 do println(roses[i], violets[i]); end else write(-1) end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Во сколько раз увеличатся числа при переносе запятой на один знак вправо? 1, 01(2)
Пример:1,00001*10=10,0001