online: 5; azi: 1146; total: 53152 Manual clasa a ix a - Algoritmi - Algoritmi pentru generarea sirurilor recurente

Manual clasa a IX a

Algoritmi

Algoritmi pentru generarea sirurilor recurente

Să se verifice dacă două numere naturale n şi m introduse de la tastatură (m>=n) pot fi termeni consecutivi ai şirului lui Fibonacci, fără a se calcula termenii şirului .
( Indicație . Se execută operația inversă , de determinare a termenilor precedenti : iniţializarea , cu a3<-m, a2 < - n, a1<-m-n, şi generarea , cu a3<-a2, a2<- a1 şi a1 <-a3-a2, cât timp a1>0; dacă a3= a2=1, m şi n sunt termeni consecutivi ai şirului lui Fibonacci.)
# include < iostream >
using namespace std ;
int main () {
// Citim n si m de la tastatura
int n, m;
cout << " Introduceti n si m: " ;
cin >> n >> m;
// Initializam a3, a2 si a1
int a3 = m;
int a2 = n;
int a1 = m - n;
// Generam termenii precedenti
while (a1 > 0 ) {
a3 = a2;
a2 = a1;
a1 = a3 - a2;
}
// Verificam daca m si n sunt termeni consecutivi ai sirului lui Fibonacci
if (a2 == n && a3 == m) {
cout << n << " si " << m << " sunt termeni consecutivi ai sirului lui Fibonacci." ;
} else {
cout << n << " si " << m << " nu sunt termeni consecutivi ai sirului lui Fibonacci." ;
}
return 0 ;
}

Programul citeste de la tastatura numerele n si m, initializeaza termenii a3, a2 si a1 conform indicatiei din enunt , si genereaza termenii precedenti pana cand a1 devine negativ. Apoi, se verifica daca n si m sunt termeni consecutivi ai sirului lui Fibonacci prin compararea valorilor a2 si a3 cu n si m.