Spoj - Czy umiesz potęgować.

0

Mam problem z zadaniem ze spoja, konkretnie tym - http://pl.spoj.com/problems/PA05_POT/
U mnie, w visual działa prawidłowo, chyba sprawdziłem wszystko jak się dało i wyniki są dobre. Za to spoj odrzuca za błędną odpowiedź.
Zrobiłem to tak:


#include <iostream>
#include <cmath>

using namespace std;

int power(unsigned long int a,unsigned long int b)
{
    int wynik;
    wynik = pow(a%10, b%10); 
    wynik %= 10;
    return wynik;
}

int main()
{
    unsigned long int a,b; // podstawa i wykladnik
    int D;                 

    cin >> D;
    for(int i=0; i<D ; ++i)
    {
        cin >> a >> b;  
        cout << power(a,b) << endl;
    }
    return 0;
}
1

oblicz sobie 2^10 i prześledź kolejne kroki w twoim algorytmie.
Wg twojego programu 2^10 równe jest 1 zamiast 1024.

0
#include <stdio.h>

int main() 
  {
   unsigned T,a,b;
   for(scanf("%u",&T);T--;)
     {
      scanf("%u%u",&a,&b);
      printf("%c\n",(10*(b&3)+(a%10))["0161656161012345678901496569410187456329'"]);
    }
   return 0;
  }
#include <iostream>
#include <cmath>
using namespace std;

int main()
  {
   unsigned t,p,w;
   for(cin>>t;t--;cout<<((int)pow(p%10,1+(3+w)%4))%10<<endl) cin>>p>>w;
   return 0;
  }
3
2^{11} mod  10 = 8

twój wzór

<tex>2^{11 mod 10} mod 10 = 2<tex>

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0