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

Cerinţa
Să se scrie o funcție C++, cu un parametru, n, care returnează cel mai apropiat număr de n care este factorialul unei valori.

Restricţii şi precizări
numele funcției va fi det
funcția va avea un singur parametru, n
0 ≤ n ≤ 10.000.000
dacă există mai multe numere care sunt factoriale ale unor valori și sunt la fel de apropiate de n, funcția îl va returna pe cel mai mic

Exemplu
det(24) = 24, det(44) = 24, det(100) = 120, det(72)=24

Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

Răspunsuri la întrebare

Răspuns de Razzvy
18
int det(int n)
{
  int p = 1 , k = 1;
  while(p < n) k ++ , p *= k;
  if(p == n) return p;
  int t = p / k;
  if(n - t <= p - n) return t;
  else return p;
}
Alte întrebări interesante