fbpx

Problema #902 – Factorial2 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa