В григорианском календаре года нумерются числами 1, 2, 3 и т.д., это года “нашей эры”. Предшествующие года называются “первый год до нашей эры”, “второй год до нашей эры” и т.д.
Будем обозначать года нашей эры положительными числами, а года до нашей эры — отрицательными. При этом года с номером 0 не существует, то есть нумерация лет выглядит так: ..., −3, −2, −1, 1, 2, 3, ...
В летописях написано, что какое-то событие произошло в году номер A, а другое событие произошло спустя n лет после первого события (или за n лет до первого события). Определите, в каком году произошло второе событие.
const n=5; m=6;
var
v:array[1..n,1..m] of integer;
b:array[1..n] of integer;
i,j,max:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
v[i,j]:=random(100)-50;
write(v[i,j]:4);
end;
writeln;
end;
for i:=1 to n do
begin
max:=0;
for j:=1 to m do
if (v[i,j]>0)and(v[i,j]>max) then max:=v[i,j];
b[i]:=max;
end;
writeln('Полученный массив:');
for i:=1 to n do write(b[i],' ');
end.
Пример:
Исходный массив:
19 12 -23 -40 -1 9
-42 18 -6 -13 -24 -31
22 26 -31 32 22 -8
-22 -7 20 0 48 35
-22 34 -46 -44 -48 -29
Полученный массив:
19 18 32 48 34
Вот вариант на C++. А так как java и C++ очень похожи, то перевести на java не должно составить никаких проблем.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int a[] = { 5, 7, 3, 6, 9, 4, 5, 1, 7, 6, 7, 8, 8, 4, 6, 9, 7, 1, 2 };
int counter = 0, k;
cout << "Enter k: ";
cin >> k;
cout << endl;
for(int i = 0; i < sizeof(a) / sizeof(int); i++)
{
cout << a[i] << ' ';
if(a[i] == k)
{
counter++;
}
}
cout << "\n\n" << counter << " times" << endl;
return 0;
}