online: 6; azi: 1228; total: 53234 Manual clasa a ix a - Algoritmi - Algoritmi pentru generarea sirurilor recurente

Manual clasa a IX a

Algoritmi

Algoritmi pentru generarea sirurilor recurente

Sa se afiseze primii n termeni ai sirului (n se introduce de la tastatura): 1, 2, 1,1, 2, 3, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, ..
# include < iostream >
int main () {
int n;
std :: cout << " Introduceti numarul n: " ;
std ::cin >> n;
int i = 1 ; // contor pentru termenii sirului
int seq_len = 1 ; // lungimea secventei curente
bool increasing = true ; // daca secventa curenta este crescatoare sau descrescatoare
while (i <= n) {
// afisam termenul curent
std :: cout << i << " " ;
i++;
// daca am ajuns la finalul secventei curente, o schimbam
if (i > seq_len ) {
increasing = ! increasing ;
seq_len ++;
}
// daca secventa este crescatoare , adaugam 1 la termenul curent
if ( increasing ) {
i += ( seq_len - 1 );
}
// daca secventa este descrescatoare , scazam termenul curent cu 1
else {
i -= ( seq_len - 1 );
}
}
return 0 ;
}

Acest program citește de la tastatură numărul n și apoi folosește un contor i, o variabilă seq_len pentru a ține evidența lungimii secvenței curente și o variabilă increasing pentru a ține evidența dacă secvența curentă este crescătoare sau descrescătoare. În bucla while , programul afișează termenul curent, apoi decide dacă trebuie să schimbe secvența curentă (daca a ajuns la finalul acesteia). Dacă secvența curentă este crescătoare, adaugă la termenul curent lungimea secvenței - 1, iar dacă este descrescătoare, scade termenul curent cu lungimea secvenței - 1.