Informatică, întrebare adresată de greeneyes27, 8 ani în urmă

Se da un numar natural n . Afisati in ordine decrescatoare primele n numere naturale impare.

int main()
{
int n;
cin >> n;
for(int i=2*n-1; i > 0; i-=2) cout << i << ' ';
return 0;
}
Nu unteleg de ce a inmultit cu 2*n-1 si acolo la incrementare . DACA POATE SA MI EXPLICE CINEVA

Răspunsuri la întrebare

Răspuns de bobita25
0

Explicație:

Expresia 2*n-1 are scopul în primul rând de a ne asigura că primul număr de la care începem este impar, oricare ar fi n număr natural, prin înmulțirea cu 2 și scăderea / adunarea lui 1, rezultatul va fi un număr impar întotdeauna.

Fiecare număr impar este separat de cel precedent printr-un interval de 2 numere (de aici vine i -= 2, acelasi lucru ca i = i - 2), iar programul trebuie să afișeze doar numerele impare, primele n, începând de la 2*n-1 și mergând înapoi din 2 în 2 până la 1.

De exemplu, dacă n = 3, for-ul începe de la 2*3-1 = 5 și parcurge elementele impare până la 1, afișându-se 5 3 1, în această ordine.

Alte întrebări interesante