Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Zadanie ze SPOJ'a i niezrozumiała funkcja

$
0
0

Witam. Mam problem z zadaniem ze SPOJ'a. Znalazłem taki kod i nie wiem jak działa funkcja jednosc. Czy mógłby mi ktoś wytłumaczyć dlaczego jest to zrealizowane tak, a nie inaczej? Z góry dziękuję za odpowiedź ;)

 

#include <iostream>

using namespace std;

int jednosc(unsigned long long, unsigned long long);

int main()
{
    int n;
    unsigned long long a, b;
    cin >> n;

    for(int i=0; i<n; i++)
    {
        cin >> a >> b;
        cout << jednosc(a, b) << endl;
    }

    return 0;
}

int jednosc(unsigned long long a, unsigned long long b)
{
    if(b==0) return 1;
    else if(b==1) return (a%10);
    else if((a%10)==1) return 1;
    else if((a%10)==5) return 5;
    else if((a%10)==6) return 6;
    if( ((a%10)==2) || (a%10)==3 || ((a%10)==7) || ((a%10)==8) ) b=(b%4)+4;
    if( ((a%10)==4) || (a%10)==9 ) b=(b%2)+2;
    a%=10;
    int x=a;

    for(unsigned int i=1; i<b; i++)
    {
        x*=a;
        x%=10;
    }
    return x;
}

 


Viewing all articles
Browse latest Browse all 21942

Trending Articles