AOJ0137 Middle-Square Method

問題リンク Middle-Square Method

  • 解法

String s = x+"";
とすれば数xを文字列にできます。
sの長さが8未満のとき、先頭に"0"を追加し続ければ長さ8の文字列にできます。
中央4文字を取得するにはs.substring(2, 6)とします。
取得した文字列をInteger.parseInt()して次の乱数を得ます。

  • ソース
import java.util.Scanner;

//Middle-Square Method
public class AOJ0137 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int Case = 1;
		int t = sc.nextInt();
		while(t--!=0){
			System.out.println("Case " + Case++ + ":");
			int x = sc.nextInt();
			x*=x;
			for(int i=0;i<10;i++){
				String s = x+"";
				while(s.length()<8)s="0"+s;
				x = Integer.parseInt(s.substring(2,6));
				System.out.println(x);
				x*=x;
			}
		}
	}
}