Vejt [ The Chronicles of Vejt ]
C++ for(silnia)
Mam pytanie czy da się zrobić silię na jednej pętli for ewentualnie na dwóch. Czy w ogóle da się zrobić silnię na pętli for.
Kijano [ Konsul ]
Nie wiem ja silnie w pascalu robie bez pętli for tylko z pętlą repeat
Esqualante [ Jyhad Baghadyr ]
Hmm, da sie :)
Esqualante [ Jyhad Baghadyr ]
Piszesz co nastepuje:
int i,n;
unsigned long silnia = 1; // to po to, aby moc liczyc duze silnie, np 100! (a nie wiem jak wielkie to moze byc)
// inaczej piszesz po prostu "int silnia = 1;"
cin >> n;
for (i = 1; i <= n; i++)
silnia = silnia * i;
cout << "Silnia jest rowna " << silnia;
// oczywiscie na poczatku #include <iostream.h>, to wszystko w funkcji main itd.
mjs27 [ Pretorianin ]
Możesz też bez pętli, z wykorzystaniem rekurencji. Oto przykładowa funkcja:
double silnia(double n)
if (n>0)
return n*silnia(n-1);
else
return 1;
KinSlayer [ Demon Hunter T ]
Esqualante >> 100 silnia??? chlopie :)
9! to ponad 300 000. Dalej za kazdym razem dochodzi co najmniej jedno zero. ULONG to ponad 4 mld...
Tak wiec licznik przekreci sie przy 13 :-)
mjs27 >> rekurencyjna wersja byla wczoraj, link ponizej :)
Esqualante [ Jyhad Baghadyr ]
KinSlayer >>>> Z deka sie zagalopowalem :) Rzeczywiscie w przypadku unsigned long licznik przewraca sie po wpisaniu 14. A ta wersja rekurencyjna tez jest fajna. :)