Паскаль Даны натуральные числа n и k. Написать программу вычисления выражения...

0 голосов
49 просмотров

Паскаль
Даны натуральные числа n и k. Написать программу вычисления выражения
1^k+2^k+3^k+4^k+…+n^k


Информатика (32 баллов) | 49 просмотров
0

Всегда такие задачи вызывали у меня улыбку, а у компьютера - пееполнение при больших n, r

0

*переполнение.

0

Да, это точно. Длинную арифметику не в каждой школе проходят. В этой задаче упор на то, что функции возведения в степень в стандартном Паскале нет. Можно придумать функцию со взятием експоненты от логарифма, боюсь, что уровень математической подготовки не позволит это.

0

Возведение в степень с помощью рекурсии, проблемно, не каждый ученик слышал о рекурсии. Остается простой неэффективный алгоритм в катаром происходит циклическое сложение, но который наталкивается на, как было указано выше, переполнение.

0

Можно написать в PascalABC.NET, имеющем и возведение в степень, т сверхдлинную арифметику

0

Согласен. Главное, чтобы преподаватель был в курсе этих возможностей )

0

А это проблема преподавателя, если он заранее не оговорил версию, в которой писать. Или, проблема задавшего тут вопрос. Но никак не наша с Вами.

0

Да, частенько не соблюдается основной принцип : «Грамотная постановка задачи»

Дан 1 ответ
0 голосов
Правильный ответ
\displaystyle S=\sum_{i=1}^ni^k, \quad n,k \in \mathbb N

// PascalABC.NET 3.1, сборка 1190 от 05.03.2016
begin
  var n:=ReadInteger('n=');
  var k:=ReadInteger('k=');
  var s:=Biginteger(0);
  for var i:=2 to n do s+=Power(Biginteger(i),k);
  Writeln('Сумма ',s+1)
end.

Тестовые решения:
n= 10
k= 30
Сумма 1043651859661187698792930519525

n= 5
k= 2
Сумма 55

n= 38
k= 67
Сумма 8400313720757760689953535296227476513296331784292134843927352320607786766609162308796108536127867158913721
(142k баллов)