writeln('Произведение элементов принадлежащих [30,60]: ',abs(B));
writeln('Сумма элементов кратных 6: ',N.FindAll(x -> x mod 6 = 0).Sum);
end.
Примечание:
1) Для записи числа использован biginteger - динамическая ячейка числа, единственная, в которую можно поместить полученный ответ
2) Сумма элементов кратных 6 находится функцией .Sum примененной к массиву, полученному от функции .FindAll
3) FindAll проверяет заданный массив по восходящему параметру, т.е. каждая следующая ячейка при проверке обозначается как некая переменная (в данном случае, как х) до знака "->", а после к ней применяется выражение (x mod 6 = 0 - т.е. элемент при делении на 6 не должен иметь остатка)
a)735(10) = 1337(8)
Переводим целую часть 735(10) в 8-ую систему последовательным делением на 8:
735/8 = 91, остаток: 7
91/8 = 11, остаток: 3
11/8 = 1, остаток: 3
1/8 = 0, остаток: 1
73510 = 13378
б)0.453(10) = 0.0111001111110111110011101(2)
Переводим целую часть 0.453(10) в 2-ую систему последовательным делением на 2:
0(10) = 0(2)
Переводим дробную часть 0.453(10) в 2-ую систему:
0.453·2 = 0.906
0.906·2 = 1.812
0.812·2 = 1.624
0.624·2 = 1.248
0.248·2 = 0.496
0.496·2 = 0.992
0.992·2 = 1.984
0.984·2 = 1.968
0.968·2 = 1.936
0.936·2 = 1.872
0.872·2 = 1.744
0.744·2 = 1.488
0.488·2 = 0.976
0.976·2 = 1.952
0.952·2 = 1.904
0.904·2 = 1.808
0.808·2 = 1.616
0.616·2 = 1.232
0.232·2 = 0.464
0.464·2 = 0.928
0.928·2 = 1.856
0.856·2 = 1.712
0.712·2 = 1.424
0.424·2 = 0.848
0.848·2 = 1.696
0.453(10) = 0.0111001111110111110011101(2)
в) 271.358(10) = 1131.2051545031001421125322405(6)
Переводим целую часть 271.358(10) в 6-ую систему последовательным делением на 6:
271/6 = 45, остаток: 1
45/6 = 7, остаток: 3
7/6 = 1, остаток: 1
1/6 = 0, остаток: 1
271(10) = 1131(6 )
Переводим дробную часть 271.358(10) в 6-ую систему:
0.358·6 = 2.148
0.148·6 = 0.888
0.888·6 = 5.328
0.328·6 = 1.968
0.968·6 = 5.808
0.808·6 = 4.848
0.848·6 = 5.088
0.088·6 = 0.528
0.528·6 = 3.168
0.168·6 = 1.008
0.008·6 = 0.048
0.048·6 = 0.288
0.288·6 = 1.728
0.728·6 = 4.368
0.368·6 = 2.208
0.208·6 = 1.248
0.248·6 = 1.488
0.488·6 = 2.928
0.928·6 = 5.568
0.568·6 = 3.408
0.408·6 = 2.448
0.448·6 = 2.688
0.688·6 = 4.128
0.128·6 = 0.768
0.768·6 = 4.608
0.35810 = 0.20515450310014211253224046
Объяснение:
begin
var N:array of integer;
setlength(n,120);
N.FillRandom(100,999);
var b:BigInteger:=1;
for var L:=30 to 60 do
begin
b:=b*N[L];
end;
writeln('Произведение элементов принадлежащих [30,60]: ',abs(B));
writeln('Сумма элементов кратных 6: ',N.FindAll(x -> x mod 6 = 0).Sum);
end.
Примечание:
1) Для записи числа использован biginteger - динамическая ячейка числа, единственная, в которую можно поместить полученный ответ
2) Сумма элементов кратных 6 находится функцией .Sum примененной к массиву, полученному от функции .FindAll
3) FindAll проверяет заданный массив по восходящему параметру, т.е. каждая следующая ячейка при проверке обозначается как некая переменная (в данном случае, как х) до знака "->", а после к ней применяется выражение (x mod 6 = 0 - т.е. элемент при делении на 6 не должен иметь остатка)