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
1
int det(int m)
{
int p = 1, i = 1, ant;
if(m == 1) return 1;
if(m == 0) return 1;
while(p <= m)
{
p = p * i;
i++;
}
ant = p / (i-1);
if(p - m < m - ant) return p;
else if(p - m == m - ant) return ant;
else return ant;
}
{
int p = 1, i = 1, ant;
if(m == 1) return 1;
if(m == 0) return 1;
while(p <= m)
{
p = p * i;
i++;
}
ant = p / (i-1);
if(p - m < m - ant) return p;
else if(p - m == m - ant) return ant;
else return ant;
}
Alte întrebări interesante
Chimie,
8 ani în urmă
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă
Geografie,
9 ani în urmă
Latina,
9 ani în urmă