Java基础题目

09:编程精确计算2的N次方。(N是介于100和1000之间的整数)
10:要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
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);

    }

}

你可能感兴趣的:(java,编程)