Не сказала бы, что это решение сильно отличается от уже имеющегося, но
а) оно совсем немножко удобнее (хотя бы из-за ClrScr и вывода ответа с определённым количеством знаков после запятой). А ещё предусмотрена возможность отсутствия таковых чисел.
б)ну не могла я пропустить задачу по паскалю)
Program n1; Uses CRT; Const n=10; Var a: array[1..n] of integer; i,s,k: integer; begin ClrScr; Randomize; For i:=1 to n do begin a[i]:=random(10); write(a[i]:3); If a[i]=i then begin s:=s+a[i]; writeln('s=',s); k:=k+1; end; end; writeln; If k=0 then writeln('таких элементов нет') else Writeln('Среднее арифметическое элементов массива, равных своим индексам, равно ',s/k:4:4); readln end.
1) Отрезаем 3 квадрата со стороной 131, остается прямоугольник со сторонами 131*32
2) Отрезаем 4 квадрата со стороной 32 ,(131-4*32 = 3), остается прямоугольник со сторонами 3*32
3) Отрезаем 10 квадратов со стороной 3 (32-10*3=2), остается прямоугольник со сторонами 2*3
4) Отрезаем квадрат со стороной 2 ,(3-2*1) остается прямоугольник со сторонами 1*2
5) Разрезаем на 2 квадрата со сторой 1
Итого получили: 3 квадрата 131*131; 4 квадрата - 32*32; 10 квадратов - 3*3,
1 квадрат - 2*2; 2 кадрата - 1*1
Не сказала бы, что это решение сильно отличается от уже имеющегося, но
а) оно совсем немножко удобнее (хотя бы из-за ClrScr и вывода ответа с определённым количеством знаков после запятой). А ещё предусмотрена возможность отсутствия таковых чисел.
б)ну не могла я пропустить задачу по паскалю)
Program n1;
Uses CRT;
Const n=10;
Var a: array[1..n] of integer;
i,s,k: integer;
begin
ClrScr;
Randomize;
For i:=1 to n do
begin
a[i]:=random(10);
write(a[i]:3);
If a[i]=i then
begin
s:=s+a[i];
writeln('s=',s);
k:=k+1;
end;
end;
writeln;
If k=0 then writeln('таких элементов нет') else
Writeln('Среднее арифметическое элементов массива, равных своим индексам, равно ',s/k:4:4);
readln
end.