範例程式碼 uva10162
//uva10162
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
// N = 100 為 1 循環,因此先求出 N = 0 ~ 99 的答案,再根據 N % 100 即可求出答案
int main() {
string N;
int ans[100], a, b, len, n;
// 先求出 N = 0 ~ 99 的答案
ans[0] = 0;
for(int i = 1; i < 100; i++) {
a = i % 10; // a = N % 10
b = i % 10; // b = (N ^ j) % 10
// 讓 b = (N ^ N) % 10
for(int j = 2; j <= i; j++)
b = (b * a) % 10;
// ans[i] = (ans[i - 1] + (N ^ N)) % 10
ans[i] = (b + ans[i - 1]) % 10;
}
while(cin >> N) {
if(N == "0")
break;
// 取得 N % 100 的結果
len = N.length();
if(len > 1)
n = (N[len - 2] - '0') * 10 + (N[len - 1] - '0');
else
n = N[0] - '0';
// 輸出最後答案
cout << ans[n] << endl;
}
return 0;
}