Jelenlegi hely

Utolsó számjegyek

Szeretnénk tudni, hogy ha egy "nagy" számot hatványozunk akkor az utolsó pár számjegye mi lesz. 
78335241234 -nél 929 az utolsó 3 számjegy.

A problémát nem a hatványozás okozza, azt csak szorzás. De hol tudom tárolni azt a számot, ami egyik típusomba sem fér bele? Ezt itt nem tudjuk meg. :)
A megoldáshoz elég ha csak mindig az utolsó 3 számjegyet tárolom el minden hatványozás után. Ez általában belefér egy egész típusba. 
A megoldás javascriptben:

<script>
var alap=0;
var szazas=0;
var tizes=0;
var egyes=0;
var kitevo=0;
var temp1=0;
var temp2=0;
var temp3=0;

alap=783;  

kitevo=35241234;

alap=alap.toString();
if(parseInt(alap)>99)
{
   szazas=parseInt(alap.slice(0,1));
   tizes=parseInt(alap.slice(1,2));
   egyes=parseInt(alap.slice(2,3));
}

else if(alap>9)
{
   szazas=0;
   tizes=parseInt(alap.slice(0,1));
   egyes=parseInt(alap.slice(1,2));
}
else{
   egyes=parseInt(alap.slice(0,1));
}

for(i=1; i<kitevo; i++)
{
   temp1=parseInt((alap*szazas).toString()+'00');
   temp2=parseInt((alap*tizes).toString()+'0');
   temp3=parseInt((alap*egyes).toString());
   alap=((temp1+temp2+temp3).toString());

   if (alap.length<3){}
   else {alap=alap.slice(alap.length-3, alap.length+1);}

}

document.write(alap);

</script>

Mit csinál az algoritmus?
A hatványozást úgy végzi, hogy helyiértékeken szoroz (ha 700-al szorozna akkor csak 7-el szoroz és ír mögé 2db 0-t). Majd a szorzatokat összeadja, itt ha elég nagy már a számunk akkor lehetséges lenne string pozíciók összeadása és a maradékok átvitele (a forráskód nem így ad össze).

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer