51nod 2187 :考慮最大 的a^b個位和是多少
import java.math.BigInteger;
import java.util.Scanner;
/*
* 對於每組數據,輸出n!的各位和。
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while ((T--) > 0) {
int n = in.nextInt();
System.out.println(f(n));
}
}
// 計算n!的各位和
private static int f(int n) {
BigInteger T = BigInteger.ZERO;//中間量
int max = 0, temp = 0,sum=0;
for (int a = 1; a < n; a++) {
for (int b = 1; b < n; b++) {
T=BigInteger.valueOf(a).pow(b);//計算a^b
sum=myadd(T.toString());//結果轉換爲字符串傳入myadd
if(sum>max){
max =sum;
}
}
}
return max;
}
//該函數實現字符串轉化爲字符數組,並求各位和
private static int myadd(String s) {
int sum = 0;
char ch[] = s.toCharArray();//s轉換爲字符數組
for(int i=0;i<ch.length;i++){
sum += ch[i]-48;
}
return sum;
}
}