586
Cerinţa
Într-o clasă sunt n elevi. În fiecare zi elevii sunt așezați în bănci în alt mod. Câte modalități de așezare a elevilor în bănci există?
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe prima linie a ecranului valoarea cerută.
Restricţii şi precizări
0 ≤ n ≤ 1000
Exemplul 1:
Intrare
3
Ieșire
6
Explicație
Dacă elevii sunt C, S și T, variantele sunt: (C, S, T), (C, T, S), (S, C, T), (S, T, C), (T, C, S) și (T, S, C).
Exemplul 2:
Intrare
25
Ieșire
15511210043330985984000000
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, a[10001]={0}, c=1;
cin >> n;
a[1]=1;
for(int i = 1; i <= n; i++)
{
int t = 0;
for(int j = 1; j <= c; j++)
{
int cif = a[j] * i + t;
a[j] = cif % 10;
t = cif / 10;
}
while(t)
{
a[++c] = t % 10;
t /=10;
}
}
for(int i = c ; i >= 1; i--)
cout << a[i];
return 0;
}
Comentarii