390
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.
int det(int n)
{
int a[11];
int val1 , val2;
a[1]=1;
for(int i = 2 ; i <= 11 ; ++i)
{
a[i]=a[i-1]*i;
}
for(int i = 1 ; a[i] <= n ; ++i)
{
val1=a[i];
val2=a[i+1];
}
if(n-val1 > val2-n)
return val2;
else
return val1;
}
Comentarii