Mam taki oto mały wielki problemik, muszę napisać program (w C++) obliczający silnię dla liczb powyżej 12.
Napisanie programu na obliczanie silni to w zasadzie banał, ale przy liczbach powyżej 20 nie starcza już nawet unsigned long long int (co akurat nie jest specjalnie zaskakujące ;)).
Żeby wszystko było jasne, muszę zastosować stosy w operacjach dodawania/mnożenia itp. dużych liczb zapisanych jako string (taki jest wymóg zadania), tylko kompletnie nie wiem jak się do tego zabrać.
Może ktoś pisał kiedyś coś takiego albo wie jak to stworzyć?
Mój programik dla obliczania silni dla małych liczb:
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
unsigned long long int silnia;
int liczba;
char znak;
while(true)
{
silnia = 1;
cout << "Podaj liczbe, z ktorej chcesz obliczyc silnie > ";
cin >> liczba;
if(liczba > 12)
{
for(int i=1; i<=liczba; i++)
{
silnia = silnia * i;
}
cout << "Silnia z liczby " << liczba << " wynosi: " << silnia << endl;
}
else
{
cout << "Liczba musi byc wieksza od 12" << endl;
}
cout << "Chcesz obliczyc kolejna silnie? (t/n) > ";
cin >> znak;
system("cls");
while(znak == 'n' || znak == 'N')
{
system("pause");
return 0;
}
}
system("pause");
return 0;
}