Witajcie.
Rozważałem różne przypadki napisania programu.
Pierwszy program liczył poprawnie, ale niestety za długo liczył.
Drugi program liczy szybko, ale jest za dużo linii kodu. Nie mam pomysłu co można jeszcze tutaj skrócić.
Rozpisując potęgowanie zauważyłem, że dla liczby kończącej się na 0,1,5,6 ostatnia cyfra jest taka sama
dla 4 i 9 są dla tylko 2 wyniki inne dla parzystych wykładników, a inne dla nieparzystych.
Problem natomiast jest z liczbami kończącymi się na 2,3,7,8 bo rozpisałem jest na 10 przypadków z caseami * 2 z ifami. Przykładowy CASE dla 2 (Całość ma 7250 linii kodu więc o dużo za dużo).
gdzie il_1w - ostatnia cyfra wykladnika, il_10w - przedostatnia cyfra wykladnika
case 2:
switch (il_1w) {
case 0:
if (il_10w%2) cout << 4 <<endl; //jeżeli przedostatnia cyfra wykładnika jest nieparzysta
else cout << 6 <<endl;
break;
case 1:
if (il_10w%2) cout << 8 <<endl;
else cout << 2 <<endl;
break;
case 2:
if (il_10w%2) cout << 6 <<endl;
else cout << 4 <<endl;
break;
case 3:
if (il_10w%2) cout << 2 <<endl;
else cout << 8 <<endl;
break;
case 4:
if (il_10w%2) cout << 4 <<endl;
else cout << 6 <<endl;
break;
case 5:
if (il_10w%2) cout << 8 <<endl;
else cout << 2 <<endl;
break;
case 6:
if (il_10w%2) cout << 6 <<endl;
else cout << 4 <<endl;
break;
case 7:
if (il_10w%2) cout << 2 <<endl;
else cout << 8 <<endl;
break;
case 8:
if (il_10w%2) cout << 4 <<endl;
else cout << 6 <<endl;
break;
case 9:
if (il_10w%2) cout << 8 <<endl;
else cout << 2 <<endl;
break;
}
break;