Răspuns :
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Introduceti n : ";
cin >> n;
cout << "Ultima cifra a lui 2^" << n << " este ";
if (n == 0) cout << 1;
else {
switch (n % 4)
{
case 0:
cout << 6;
break;
case 1:
cout << 2;
break;
case 2:
cout << 4;
break;
case 3:
cout << 8;
break;
}
}
}
► Explicatie matematica
Stim ca ultima cifra a lui 2^n este :
- 1, daca n=0
- 6, daca n=4k (unde k!=0)
- 2, daca n=4k+1
- 4, daca n=4k+2
- 8, daca n=4k+3
Deci ne putem ghida dupa restul impartirii lui n la 4 pentru a determina ultima cifra a lui 2^n.
Acest algoiritm este recomandat fata de metoda clasica cu for, functioneaza pentru numere foarte mari, are complexitate constanta.
![Vezi imaginea Andrei750238](https://ro-static.z-dn.net/files/d18/e6e1c964bf00e88160626c1bbc71c5c3.png)