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);
}
}