常见的java编程题

原创文章转载请注明来源:https://blog.csdn.net/weixin_41756573/article/details/88837628

public class M1 {
    
    public static void main(String[] args) {
        // 利用递归算法计算阶乘
        M1 m1 = new M1();
        int num = m1.Jc(3);
        System.out.println("阶乘:"+num);
        
        // 阶乘求和,1!+2!+3!
        int he = 0;
        for (int i = 1; i <= 3; i++) {
            he += m1.Jc(i);
        }
        System.out.println("阶乘求和:"+he);
        
        // 1-1000 的质数
        m1.Zs();

       // 随机数

      m1.Sjs1(30,100);

     m1.Sjs21(30,100);
        
    }
    
    // 0 的阶乘是 1 ,1的阶乘是 1,n*(n-1)
    public int Jc(int i){
        if(i == 0 || i == 1){
            return 1;
        }else if(i>1){
            return i * Jc(i-1);
        }else{
            return -1;
        }
    }
    
    // 求质数1-1000,只能被1和本身整除的大于1的自然数
    public void Zs(){
        for (int i = 2; i < 1000; i++) {
            boolean flag = true;
            for (int j = 2; j < i-1; j++) {
                if(i % j == 0){// 非质数
                    flag = false;
                    break;
                }
            }
            if(flag){
                System.out.println("质数:"+i);
            }
            
        }
    }

    // 求随机数,方法1
    public int Sjs1(int min , int max){
        int result = new Random().nextInt(max-min)+min;
        return result;
    }
    
    // 求随机数,方法2
    public int Sjs2(int min , int max){
        int result = (int)(Math.random() * (max - min) + min);
        return result;
    }
}

你可能感兴趣的:(java面试题)