Informatică, întrebare adresată de Florian32, 9 ani în urmă

Cerinţa:
Să se scrie o funcție C++ care să returneze pentru un număr natural n transmis ca parametru valoarea lui n!, adică 1•2•...•n.

Restricţii şi precizări:
-numele funcției va fi fact
-funcția va avea un singur parametru, n
-valoarea lui n! va fi returnată de către funcție
-prin definiție, 0!=1
-0 ≤ n ≤ 12

Exemplu:
fact(4) = 24


Patrissia: Trebuie sa o rezolv cu ajutorul subprogramelor?
Florian32: nu
Patrissia: Deci nu am rezolvat problema bine?
Florian32: e o problema la final cu acoladele
Patrissia: Încă nu am învățat. ..poți sa-mi raportezi răspunsul și moderatorul sa mi-l șteargă. .alta persoana poate știe sa ti-l rezolve
Florian32: Am descoperit de ce nu imi mergea initial, aparent trebuie sa citesc tot enuntul ca sa nu mai dau rateuri, dar mersi oricum ca ai incercat sa ma ajuti.

Răspunsuri la întrebare

Răspuns de Patrissia
4
#include <iostream>
using namespace std;
int n;
int fact (int x)
{int t,i,S;
t=x;S=1;
if (t!=0)
{for (i=1;i <=t;i++)
{S=S×i;}}
return S;}
int main ()
{cin>>n;
cout <<fact (n);
return 0;}

ionutg38: #include <iostream>
using namespace std;

unsigned long long fact(int n)
{
unsigned long long f=1;
for(int i=1;i<=n;++i)
f*=i;
return f;
}
int main()
{
int n;
cin>>n;
cout<<fact(n);
return 0;
}
Răspuns de express
3
Problema trimisa de Patrissia functioneaza cum trebuie si e corect formulata (nu sunt greseli la acolade). Am rescris codul si am editat astfel incat programul sa fie lizibil. Succes!

#include <iostream>
using namespace std;
int n;
int fact(int x)
{
    int t, i, S;
    t = x;
    S = 1;
    if (t != 0)
    {
        for (i = 1; i <= t; i ++)
        {
            S=S*i;
        }
    }
    return S;
}
int main()
{
    cin >> n;
    cout << fact(n);
    return 0;
}

Alte întrebări interesante