Informatică, întrebare adresată de Trollea, 8 ani în urmă

Se dau două numere naturale nenule a şi n cu cel mult 10 cifre. Se cere să se afişeze ultima cifră a puterii a la n. Exemplu: Pentru a= 1222223 şi n= 180 se va afişa 1.


boiustef: Limbajul?

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,a,ua,up, r;

   cin >> a >> n;

   ua=a%10;

   if (ua==0 || ua==1 || ua==5 || ua==6) up=ua;

   if (ua==2)

   {

       r=n%4;

       if (r==1) up=2;

       if (r==2) up=4;

       if (r==3) up=8;

       if (r==0) up=6;

   }

   if (ua==3)

   {

       r=n%4;

       if (r==1) up=3;

       if (r==2) up=9;

       if (r==3) up=7;

       if (r==0) up=1;

   }

   if (ua==4)

   {

       if (n%2==1) up=4;

       else up=6;

   }

   if (ua==7)

   {

       r=n%4;

       if (r==1) up=7;

       if (r==2) up=9;

       if (r==3) up=3;

       if (r==0) up=1;

   }

   if (ua==8)

   {

       r=n%4;

       if (r==1) up=8;

       if (r==2) up=4;

       if (r==3) up=2;

       if (r==0) up=6;

   }

   if (ua==9)

   {

       if (n%2==1) up=9;

       else up=1;

   }

   cout << up;

   return 0;

}

Explicație:

variabilele:

ua - ultima cifră a lui a;

up - ultima cifră a puteri a^n;

r - restul de la impartire n la 4.

p.s.   evident că nu putem calcula valoarea puterii cu ciclu, deoarece se obţine un număr f. mare.

Alte întrebări interesante