51nod 2187 Project Euler 56 考慮最大 的a^b個位和是多少

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;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章