Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

log10(n!)

Ostatnio zmodyfikowano 2017-06-20 12:42
Autor Wiadomość
degel1234
Temat założony przez niniejszego użytkownika
log10(n!)
» 2017-06-13 22:02:01
C/C++
czesc chcialem przekszatlcic wzor ln( n !) = ln1 + ln2 +...+ ln n na wzor pozwalajacy wyliczyc i wyszlo mi ze log( n !) =( ln1 + ln2 +..+ ln n ) * log( e )

Niestety nie wylicza zadanej wartosci.Poradzi ktos jakie poprawki wprowadzic ? Funkcja ma zwracac liczbe cyfr w n !czyli dla 6 powinno zwracac 3( 6 != 720 )

#include<stdio.h>
#include<math.h>
#define e 2.71828182
int main()
{
    int n = 6;
    double x;
    double sum = 0;
    int i;
    for( i = 1; i <= n; i++ )
         sum += log( n );
   
    x = sum * log10( e );
    printf( "%f",( int ) x );
    return 0;
}
P-162513
Monika90
» 2017-06-13 22:43:29
printf( "%f",( int ) x );

%f wymaga argumentu typu float albo double, a ty przekazujesz int.
P-162516
bombatom69
» 2017-06-18 19:08:13

i wyszlo mi ze log( n !) =( ln1 + ln2 +..+ ln n ) * log( e )
A mi wyszło, że:

log(n!) = log(1*2*...*n) = (wprost z własności logarytmów) = log(1) + log(2) + ... + log(n)
P-162664
pekfos
» 2017-06-19 11:17:24
bombatom69: To to samo.
P-162670
bombatom69
» 2017-06-20 12:42:29
Zbędna komplikacja.
P-162714
« 1 »
  Strona 1 z 1