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

Buna! Să se scrie un program care calculează valoarea expresiei: P=1*2*3*4*...*n .
Exemplu: n=4. Se va afișa: 24. In limbajul c++. Mulțumesc !

Răspunsuri la întrebare

Răspuns de alexesanu31
0

#include <iostream>

using namespace std;

int main()

{

   long long n, i, p=1, cn;

   cin>>n;

   cn=n; //facem o copie a lui n

   if(n==0)

       cout<<1;

   if(cn>0)

   {

       cn--;

       for(i=2; i<=n; i++)

       {

           p=p*i;

       }

       cout<<p;

   }

}


UnguruFelina: De ce mai verifici daca n este 0? Programul va afisa 1 chiar daca n este 0 deoarece ai atribuit valoare 1 lui p inca din inceput, nici nu mai intra in for. De ce ai facut copie lui n? Nu este nevoie sa ii faci copie deoarece nu isi "pierde" valoare nicaieri in program. Si nu trebuie neaparat sa folosesti long long deoarece factorialul da nr. foarte mari. Programul facut de tine nu este foarte eficient din punct de vedere al memoriei pe care il utilizeaza, ar fi trebuit sa mentionezi asta
Răspuns de UnguruFelina
1

Răspuns:

Programul de mai jos calculeaza produsul elementelor de la 1 la n

Se mai numeste si factorial, si prin definitie factorial de 0 este 1.

Daca ai intrebari scrie mai jos!!!

Explicație:

#include <iostream>

using namespace std;

int main()

{

   int n;

   cin>>n;

   int p=1;

   for(int i=1;i<=n;i++) //iei toate nr de la 1 la n

   p=p*i; // inmultesti nr de pe poz. i cu p pana cand se termina for-ul

   cout << p; //afisezi produs

   return 0;

}


UnguruFelina: (Factorialul merge doar pana la n=20 btw, deoarece produsule peste 20 sunt nr foarte mari)
GreenTea: buna! mulțumesc mult pentru ajutor! am mai postat încă o întrebare. dacă poți rezolva măcar o problema din cele 3 ar fi minunat<3.
Alte întrebări interesante