Дан массив b 60 заполнить целыми случайными числами найти произведение чисел кратных 7

Дан массив b 60 заполнить целыми случайными числами найти произведение чисел кратных 7
Гость
Ответ(ы) на вопрос:
Гость
//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.
Гость
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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы