
Вопрос задан 20.08.2023 в 01:58.
Предмет Информатика.
Спрашивает Василевич Даниил.
Задача по Паскалю. Сергей сложил пирамиду. На вершине пирамиды лежит один кирпич, на втором
сверху ряду два кирпича, на третьем - три, и т.д., в нижнем ряду пирамиды количество кирпичей равно количеству уровней пирамиды. После этого он написал на каждом кирпиче по числу, равному количеству кирпичей на этом уровне, т.е. на верхнем уровне 1, на втором уровне 2, и т.д. Определите сумму чисел написанных на кирпичах. Программе даётся целое число n — количество уровней в пирамиде. Необходимо вывести сумму чисел написанных на кирпичах. Без использования циклов while, repeat и массивов.

Ответы на вопрос

Отвечает Гайсин Ильназ.
Искомое число будет равно
Вариант поиска суммы с использованием цикла for:
var
n, i, sum: integer;
begin
sum := 0;
readln(n);
for i := 1 to n do
sum := sum + sqr(i);
writeln(sum);
end.
Вариант поиска суммы с использованием рекурсивной функции:
function f(k: integer): integer;
begin
if k = 1 then
f := 1
else
f := sqr(k) + f(k-1)
end;
var n : integer;
begin
readln(n);
writeln(f(n))
end.
Вариант поиска суммы с использованием цикла for:
var
n, i, sum: integer;
begin
sum := 0;
readln(n);
for i := 1 to n do
sum := sum + sqr(i);
writeln(sum);
end.
Вариант поиска суммы с использованием рекурсивной функции:
function f(k: integer): integer;
begin
if k = 1 then
f := 1
else
f := sqr(k) + f(k-1)
end;
var n : integer;
begin
readln(n);
writeln(f(n))
end.



Отвечает Ильинов Матфей.
Var n,sum:integer;
begin
read(n);(*Не уверен, можно ли присвоить счетчику значение с клавиатуры*)
for var i := n downto 1 do
for var j := i downto 1 do sum:=sum+n;
end.
begin
read(n);(*Не уверен, можно ли присвоить счетчику значение с клавиатуры*)
for var i := n downto 1 do
for var j := i downto 1 do sum:=sum+n;
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи без использования циклов можно воспользоваться рекурсией. Вот как это можно сделать на языке Pascal:
pascalprogram PyramidSum; function SumOfLevels(level: Integer): Integer; begin if level = 1 then SumOfLevels := 1 else SumOfLevels := level + SumOfLevels(level - 1); end; var n: Integer; totalSum: Integer; begin Write('Введите количество уровней в пирамиде: '); Readln(n); totalSum := SumOfLevels(n); WriteLn('Сумма чисел написанных на кирпичах: ', totalSum); end.
Программа работает следующим образом:
- В функции
SumOfLevels
происходит рекурсивный расчет суммы чисел на каждом уровне пирамиды. - Базовый случай: когда
level
равен 1, функция возвращает 1 (сумма числа на верхнем уровне). - В остальных случаях функция вызывает саму себя для
level - 1
и добавляет текущий уровеньlevel
к результату.
Затем основная часть программы запрашивает у пользователя количество уровней в пирамиде, вызывает функцию SumOfLevels
и выводит полученную сумму на экран.
Обратите внимание, что в этом коде нет циклов while
, repeat
и массивов, как требуется в задаче. Вместо этого используется рекурсия для выполнения вычислений.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 557

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili