http://ideone.com/rCUkt8 --->kod
http://pl.spoj.com/problems/PA05_POT/ ---> zadanie
Czy mógłby ktoś mnie nakierować na poprawne myślenie? Cały czas próbuje jakoś ogarnąć te potęgi:
Dla niektórych liczb są 4 możliwe odpowiedzi
Dla tych co była jedna możliwa odpowiedź to jest ustalone
Dla pozostałych są dwie możliwości, czyli odpowiedź będzie zależna od tego czy potęga do której mam podnieść jest parzysta czy nie, tak?
Ale te poczwórne przypadki to jakos nie mogę dla nich za bardzo nic wymyślić, np. dla 8 ostatnią cyfą będzie 8 dla kolejnych potęg 1,5,9,13... itd
Ale nie bardzo mam pomysł jak to zapisać
- Rejestracja:około 8 lat
- Ostatnio:prawie 8 lat
- Postów:24
0
edytowany 1x, ostatnio: GrumpyFox

- Rejestracja:około 17 lat
- Ostatnio:około godziny
1
popatrz na kolejne potęgi ostatniej cyfry:
0 - 0 0 0 0 0 0 0 0 0
1 - 1 1 1 1 1 1 1 1 1
2 - 2 4 8 6 2 4 8 6 2
3 - 3 9 7 1 3 9 7 1 3
4 - 4 6 4 6 4 6 4 6 4
5 - 5 5 5 5 5 5 5 5 5
6 - 6 6 6 6 6 6 6 6 6
7 - 7 9 3 1 7 9 3 1 7
8 - 8 4 2 6 8 4 2 6 8
9 - 9 1 9 1 9 1 9 1 9
Widać cykl, tylko ostatnia cyfra wykładnika ma wpływ na wynik, do tego cykl, czyli wynik możesz sobie stabilizować.
edytowany 1x, ostatnio: MarekR22
no tak ja widzę ten cykl, tylko nie wiem jak zapisać go dla tych wykładników co są 4 możliwości w odpowiedzi. Bo to są takie liczby jak np. 1, 5, 9, 13 ... i nie bardzo umiem znaleźć jakąś zaleźność , żeby ułożyć dla nich jakiegoś ifa

tab[a%10][b%4]
Chyba nie bardzo umiem zrozumieć tab[a%10][b%4]

- Rejestracja:ponad 8 lat
- Ostatnio:ponad 6 lat
- Lokalizacja:Lublin
- Postów:197
0
@GrumpyFox: chyba @MarekR22 chodziło o coś takiego:
#include <iostream>
int main()
{
int howMany = 0;
int a[10], b[10];
int array[9][9] = {
{1,1,1,1,1,1,1,1,1},
{2,4,8,6,2,4,8,6,2},
{3,9,7,1,3,9,7,1,3},
{4,6,4,6,4,6,4,6,4},
{5,5,5,5,5,5,5,5,5},
{6,6,6,6,6,6,6,6,6},
{7,9,3,1,7,9,3,1,7},
{8,4,2,6,8,4,2,6,8},
{9,1,9,1,9,1,9,1,9}
};
std::cin>>howMany;
for (int i=0; i< howMany; i++)
{
std::cin>>a[i]>>b[i];
}
for (int i=0; i<howMany; i++)
{
std::cout<<array[a[i]%10-1][b[i]%4-1]<<"\n";
}
}
Jednak nie wiem, dlaczego SPOJ nie chce mi tego przyjąć.
Podejrzewam, że coś nie tak mam z I/O.

- Rejestracja:około 17 lat
- Ostatnio:około godziny
0
@bl4ster no i crash i na dodatek zła odwiedź.
static cosnt char tab[][] = {
{'0','0','0','0'},
{'1','1','1','1'},
{'6','2','4','8'},
{'1','3','9','7'},
{'6','4','6','4'},
{'5','5','5','5'},
{'6','6','6','6'},
{'1','7','9','3'},
{'6','8','4','2'},
{'1','9','1','9'}
};
unsigned int a, b;
while(cin >> a >> b)
{
if (b != 0) {
cout << tab[a%10][b%4] << '\n';
} else {
cout << '1' << '\n';
}
}