Java基本テーマ


09:プログラミングは正確に2のN乗を計算します。(Nは100と1000の間の整数)10:次の性質数を持つ個数(入力の自然数nを含む)を求める:まず自然数n(n<=1000)を入力して、その自然数を次のように処理する。2.左に自然数を加えますが、自然数は元の半分を超えてはいけません。3.数を加えると、自然数が加算されなくなるまでこの規則で処理を続けます。例えば、6、満足条件の数は6、16、26、126、36、136です。
package Base;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Example10 {

    public static Set<Integer> set = new HashSet<Integer>();

    public static int t2(int num){
        if(num/10==0){
            return 1;
        }else{
            return 1+t2(num/10);
        }
    }

    public static int t3(int num){
        if(num/10==0){
            return num%10;
        }else{
            return t3(num/10);
        }
    }

    public static void t1(int num){
        int half = t3(num)/2;
        int n;
        for(int i=1;i<=half;i++){
            n = (int) (Math.pow(10, t2(num))*i+num);
            if(!set.contains(n)){
                set.add(n);
                t1(n);
            }
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
// System.out.println("       :");
// Scanner cin = new Scanner(System.in);
// int num = cin.nextInt();
        t1(6);
        System.out.println(set);

    }

}