Cum calculez cât mai repede suma tuturor numerelor cuprinse între două numere date a și b fără acestea exemplu pentru a egal cu 6 și b egal cu 3 ar trebui să răspunzi 9(5+4).
Răspunsuri la întrebare
Răspuns de
6
Folosim formula pentru suma primilor n termeni ai unei progresii aritmetice :
n - numarul de termeni
a1 - primul termen
an - ultimul termen
In cazul nostru, avand nevoie de termenii cuprinsi intre a si b (fara acestia) variabilele noastre sunt :
n = b-a-1
a1 = a+1
an = b-1
Astfel, formula devine :
IMPLEMENTARE C/C++ :
#include <iostream>
using namespace std;
int main(){
//Declaram variabilele
int a,b,n,s=0;
//Citim a si b
cout << "Introduceti a,b : ";
cin >> a >> b;
if(a>b)swap(a,b);
//Calculam suma conform formulei gasite
s = (b-a-1)*(a+b)/2;
//Afisare rezultat
cout << "Suma este " << s;
}
Anexe:
Alte întrebări interesante
Alte teme,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Este deci mult mai eficient decat varianta clasica in care adunam fiecare numar - algoritm care are o complexitate O(n)