# PBinfo #3331 – NumarPermutari – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Darius

## Enunț

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

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n, rez[10000];
int main(){
	cin  >> n;	
	rez[0] = 1;
	rez[1] = 1;
	for(int i = 1 ; i <= n ; ++i)
	{
		int t = 0;
		for(int j = 1 ; j <= rez[0] ; j++)
		{
			int cif = t + i * rez[j];
			rez[j] = cif % 10;
			t = cif / 10;
		}
		while(t)
			rez[++rez[0]] = t % 10, t /= 10;
	}
	for(int i = rez[0] ; i > 0 ; i--)
		cout << rez[i];
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3331)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3331/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3331/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
