ZADANIE SPOJ: 2 CYFRY Z SILNI!
#include <iostream>
using namespace std;
int main ()
{
int n;
int* tab = new int[n];
int* tab1 = new int[n];
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>tab[i-1];
}
for (int i=1;i<=n;i++)
{
tab1[i-1]=1;
}
for (int i=1;i<=n;i++)
{
if(tab[i-1]==0||tab[i-1]==1)
{
cout<<"0 1\n";
}
else
{
for(int k=1;k<=tab[i-1];k++)
{
tab1[i-1]*=k;
}
while(tab1[i-1]>=100)
{
tab1[i-1]=tab1[i-1]%100;
}
if(tab1[i-1]>10)
cout<<((tab1[i-1]%100)-(tab1[i-1]%10))/10<<" "<<tab1[i-1]%10<<endl;
else
cout<<"0 "<<tab1[i-1]%10<<endl;
}
}
}
Wstawiam cały kod ponieważ mam problem z tym, że mój program przekracza limit czasowy. W jaki sposób mogę zoptymalizować kod?