Программа с рекурсией c++
Недавно начали изучать c++ и написал 100% какую-то неправильную хрень. Не особо понимаю что и как нужно делать.В общем нужна помощь с заданием.
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int a1,a2,an,n,sum;
a1=2;
a2=3;
an=pow(a1(n-1),2)-pow(a2(a-2),2);
sum = 0;
cin>>n;
for (i=0;i>=0;i++){
sum = an;
}
cout<<an;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Я бы делал так (итеративный и рекурсивный варианты):
long long A(unsigned int m)
{
if (m == 1) return 2;
if (m == 2) return 3;
long long a1 = A(m-1), a2 = A(m-2);
return a1*a1 - a2*a2;
}
long long Sum(unsigned int m)
{
if (m == 0) return 0;
if (m == 1) return 2;
if (m == 2) return 5;
return Sum(m-1) + A(m);
}
int main()
{
long long n, a1 = 2, a2 = 3;
long long S = a1 + a2;
cin >> n;
for(long long a, i = 3; i <= n; ++i)
{
S += (a = a2*a2 - a1*a1);
a1 = a2;
a2 = a;
}
cout << S << endl;
cout << Sum(n) << endl;
}
long long — потому что такой ряд быстро переполнится... Даже с ним работает только до n==8, для 9 уже получается 63248529811938901248310879532088328642...
