log10(n!)
Ostatnio zmodyfikowano 2017-06-20 12:42
degel1234 Temat założony przez niniejszego użytkownika |
log10(n!) » 2017-06-13 22:02:01 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; }
|
|
Monika90 |
» 2017-06-13 22:43:29 printf( "%f",( int ) x ); %f wymaga argumentu typu float albo double, a ty przekazujesz int. |
|
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)
|
|
pekfos |
» 2017-06-19 11:17:24 bombatom69: To to samo. |
|
bombatom69 |
» 2017-06-20 12:42:29 Zbędna komplikacja. |
|
« 1 » |