Сумма n члегов арифметическоё прогрессии с помощью рекурсии!

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Сумма n члегов арифметическоё прогрессии с помощью рекурсии!

Re: Программа на Паскале кто может переведите на Си

bars1990 » 26 июн 2009, 17:38

Я проделал всё это. Работает!!!
Огромное спасибо!!!

Re: Программа на Паскале кто может переведите на Си

Albor » 26 июн 2009, 17:34

bars1990 писал(а):Спосибо работает отлично :D
Слушай, а можно реализовать ввод всех параметров с клавы???
Это просто, напиши сам. конструкция cout<<данные1<<данные2<< и т.д.; выводит на экран, а cin>>имя_переменной; - вводит данные.

Re: Программа на Паскале кто может переведите на Си

bars1990 » 26 июн 2009, 17:19

Спосибо работает отлично :D
Слушай, а можно реализовать ввод всех параметров с клавы???

Re: Сумма n члегов арифметическоё прогрессии с помощью рекурсии!

Albor » 26 июн 2009, 17:07

Держи!
CPP Код:
[LEFT]#include <iostream.h>
int pr(int n, int arg, int ras)
{
if(n==1) return arg;
return arg+(n-1)*ras+pr(n-1,arg,ras);
}
void main()
{
cout<<pr(6,1,2);//пример
}
[/LEFT]

Программа на Паскале кто может переведите на Си

bars1990 » 26 июн 2009, 15:19

Способа за уделённое внимание.
Я нашел программу по теме, но она на Паскале.
Прошу перегнать её в Си или С++.
uses crt;
procedure pr(var a:integer;p:integer;n:integer;var sum:integer);
begin
if n = 1 then sum:=a
else
begin
pr(a,p,n-1,sum);
a:=a+p;
sum:=sum+a;
end;
end;

var s,a,p:integer;
n:integer;
begin
clrscr;
write('Vvedite A0 : ');readln(a);
write('Vvedite p : ');readln(p);
write('Vvedite n : ');readln(n);
pr(a,p,n,s);
writeln('Sum = ',s);
readln
end.

P.S. Желательно в среде Microsoft Visual Studio.

Заранее благодарен.

Re: Сумма n члегов арифметическоё прогрессии с помощью рекурсии!

Romeo » 25 июн 2009, 11:56

Я не знаю, как сделать через рекурсию. Хотя, если извратиться, то наверное можно, но я не понимаю смысла, ведь для вычисления суммы есть готовая формула.

Sn = n * (a1 + an) / 2;

Если учесть, что у нас есть следующие соотношения:

a1 - первый член
d - разность прогрессии
an = a1 + (n-1)*d

То формула для суммы арифметической прогресии превращается в:

Sn = n * (2*a1 + (n-1)*d) / 2 = n*a1 + n*(n-1)*d/2

Сумма n члегов арифметическоё прогрессии с помощью рекурсии!

bars1990 » 25 июн 2009, 11:31

Даны: первый член и разность арифметической прогрессии. Нужно вычислить сумму первых n членов этой прогрессии?
Используя рекурсивную функцию.

P.S. Желательно в среде Microsoft Visual Studio.

Заранее благодарен.

Вернуться к началу