Ответы
Ответ дал:
0
//Pascal ABC.Net
Var b:array[1..60] of longint;i:longint;pr:int64;
Begin
pr:=1;
for i:=1 to 60 do
begin
b[i]:=random(99)+1;
if (b[i] mod 7=0) then pr*=b[i];
end;
writeln('Получившийся массив:');
for i:=1 to 60 do
write(b[i],' ');
writeln;
writeln('Произведение чисел кратных 7 равно ',pr);
End.
//Если не пашет (ошибка компиляции):
//1) В строке if (b[i] mod 7=0) then pr*=b[i]; замени pr*=b[i]; на pr:=pr*b[i];
//2) Если всё равно ошибка компиляции, попробуй int64 заменить на longint
//3) Если всё равно ошибка компиляции, longint переименуй в integer.
Var b:array[1..60] of longint;i:longint;pr:int64;
Begin
pr:=1;
for i:=1 to 60 do
begin
b[i]:=random(99)+1;
if (b[i] mod 7=0) then pr*=b[i];
end;
writeln('Получившийся массив:');
for i:=1 to 60 do
write(b[i],' ');
writeln;
writeln('Произведение чисел кратных 7 равно ',pr);
End.
//Если не пашет (ошибка компиляции):
//1) В строке if (b[i] mod 7=0) then pr*=b[i]; замени pr*=b[i]; на pr:=pr*b[i];
//2) Если всё равно ошибка компиляции, попробуй int64 заменить на longint
//3) Если всё равно ошибка компиляции, longint переименуй в integer.
Ответ дал:
0
Можно даже сделать random(2)+1...
Ответ дал:
0
А почему бы и нет? В условии ведь не было ничего сказано.
Ответ дал:
0
Да хотя бы потому, что если не указано, задача должна позволять задавать числа во всем диапазоне представления данных. Либо, надо указывать верхнюю границу таких данных, после которых может появиться неконтролируемое переполнение.
Ответ дал:
0
В Вашем варианте предельный случай (теоретически возможный) - это все 60 элементов на максимуме. Что дает даже для random(13)+1 величину порядка 13 в шестидесятой степени.
Ответ дал:
0
Чему вас только учат...?
Ответ дал:
0
1. Современное эффективное решение
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(60,1,99); a.Println;
Writeln('П=',a.Where(x->x mod 7=0).Aggregate(BigInteger(1),(x,y)->x*y))
end.
Пример
79 23 80 37 68 93 7 77 16 29 97 73 36 33 36 98 91 67 28 37 91 17 42 28 83 85 33 28 8 28 61 85 76 92 78 31 82 91 43 35 21 7 27 83 82 57 36 28 13 42 88 38 54 73 36 62 80 52 54 82
П=6217461925940365408788480
2. А вот решение, каким обычно обучают в школе
var
a:array[1..60] of integer;
i:integer;
p:real;
begin
Randomize;
p:=1;
for i:=1 to 60 do
begin
a[i]:=Random(99)+1;
Write(a[i],' ');
if a[i] mod 7=0 then p:=p*a[i]
end;
Writeln;
Writeln('П=',p)
end.
Пример
61 17 39 73 2 48 22 17 42 22 82 37 29 59 70 11 43 29 21 31 31 10 44 27 11 68 76 39 68 84 64 39 78 64 25 32 80 1 92 28 98 5 27 28 82 92 20 59 49 98 93 1 33 97 85 52 72 13 62 33
П=1.91341954266624E+15
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(60,1,99); a.Println;
Writeln('П=',a.Where(x->x mod 7=0).Aggregate(BigInteger(1),(x,y)->x*y))
end.
Пример
79 23 80 37 68 93 7 77 16 29 97 73 36 33 36 98 91 67 28 37 91 17 42 28 83 85 33 28 8 28 61 85 76 92 78 31 82 91 43 35 21 7 27 83 82 57 36 28 13 42 88 38 54 73 36 62 80 52 54 82
П=6217461925940365408788480
2. А вот решение, каким обычно обучают в школе
var
a:array[1..60] of integer;
i:integer;
p:real;
begin
Randomize;
p:=1;
for i:=1 to 60 do
begin
a[i]:=Random(99)+1;
Write(a[i],' ');
if a[i] mod 7=0 then p:=p*a[i]
end;
Writeln;
Writeln('П=',p)
end.
Пример
61 17 39 73 2 48 22 17 42 22 82 37 29 59 70 11 43 29 21 31 31 10 44 27 11 68 76 39 68 84 64 39 78 64 25 32 80 1 92 28 98 5 27 28 82 92 20 59 49 98 93 1 33 97 85 52 72 13 62 33
П=1.91341954266624E+15
Вас заинтересует
2 года назад
2 года назад
6 лет назад
6 лет назад
9 лет назад
9 лет назад
9 лет назад
9 лет назад