Способ довольно простой, только надо задать mas[0], пусть оно будет 0
mas[1] = mas[1] + mas[0]*3 = mas[1] = 3
mas[2] = mas[2] + mas[1]*3 = mas[2] + 9 = 14 -> mas[2] = 14-9 = 5
и тд
#Ruby22
mas = [0, 3, 5, 5, 1, 2]
for i in 1..5
mas[i] += mas[i - 1] * 3
end
p mas
В четырехцветном изображении для хранения одной точки требуется log(2)4 = 2 бита; в изображении с 16-цветной палитрой - log(2)16 = 4 бита. В том же объеме памяти в этом случае можно сохранить изображение, содержащее в 2 раза меньше точек, т.е. 300*200 / 2 = 30000. Если не изменять пропорции, то размер изображения ≈ 212*141
Program vj;
var x,a,b,c,h:integer;
begin
writeln('трёхзначное число');
readln(x);
a:=x div 100;
b:=x div 10 mod 10;
c:=x mod 10;
h:=a+b+c;
writeln(' Сумма цифр этого трёхзначного числа=',h)
end.
Это не такое уж и сложное задание. Ты могла бы его сделать сама.
P.S Я надеюсь, что я всё сделал правильно (но это неточно) :)
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
type
Mas=array[,] of integer;
procedure GetMas(s:string; var a:Mas);
begin
Writeln('*** Массив ',s,' ***');
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('Вводите элементы массива');
a:=ReadMatrInteger(n,m)
end;
function SumDiag(a:Mas):integer;
begin
Result:=0;
for var i:=0 to Min(a.RowCount,a.ColCount)-1 do Result+=a[i,i]
end;
begin
var a,b,c:Mas;
GetMas('A',a);
GetMas('B',b);
GetMas('C',c);
Writeln('Общая сумма элементов главных диагоналей равна ',
SumDiag(a)+SumDiag(b)+SumDiag(c))
end.
<u>Пример</u>
*** Массив A ***
Количество строк в массиве: 3
Количество столбцов в массиве: 4
Вводите элементы массива
-33 -50 34 -41
-31 10 37 31
32 -49 -32 -27
*** Массив B ***
Количество строк в массиве: 2
Количество столбцов в массиве: 2
Вводите элементы массива
-22 35
0 11
*** Массив C ***
Количество строк в массиве: 3
Количество столбцов в массиве: 2
Вводите элементы массива
23 38
17 -8
16 -1
Общая сумма элементов главных диагоналей равна -51