👤
a fost răspuns

Help,la informatică.
Calculați (1+2+3...+100) - (1+3+5...+99).
Folosind recursia în limbajul C.
E ceva de genul dat...dar nu stiu cum sa aplic formula mea

#include
#include
#include
#include
float recursive_sum(float sum, float a, int n);
int main()
{

recursive_sum(0.0, 3.0, 3);
//printf('SUM = %d', result );

return 0;
}

float recursive_sum( float sum, float a, int n){

float current = 1.0 / pow( a, 2*n );

sum = sum + current;

printf("SUM= %f, N = %d, \n", sum, n);

if( n == 0){
return sum;
}

n = n-1;
return recursive_sum(sum, a, n);
}


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int suma(int n, int pas)

{

   if (n<=0) return 0;

   else return n+suma(n-pas,pas);

}

int main()

{

   cout << suma(100,2) << "\n";

   cout << suma(100,1)-suma(99,2);

}

Explicație:

C nu cunosc, dar cred logica îţi trebuie... Am creat o funcţie recursivă ce calculează suma numerelor în care se foloseşte i pasul de descreştere pentru a forma numerele precedente. La apelul suma(100,1) se vor aduna numerele 100+99+98+...+1, iar cu apelul suma(99,2) se va face suma 99+97+95+...+1. Totuşi am accentuat că  

(1+2+3...+100) - (1+3+5...+99) = 2+4+6+...+100, deaceea în cod am folosit si

apelul suma(100,2) care face suma parelor. Ai posibilitate să vezi că rezultatele acestor apeluri coincid

Sper că e ceea ce aştepţ... Succese