• java算法(一)


     最近在看各种经典算法,自己写起来:

     一、判断素数问题:

          知识点:素数即为质数,一个数n若不是质数则一定在2-n/2之间内有因数。

        

    package JingDian;
    
    public class sushu {
        public static void main(String[] args){
        myMath shu = new myMath();
        for(int i=101;i<=200;i++){
            if(shu.isSuShu(i)==true){
                System.out.println(i);
            }
         }
        }
    }
    
    class myMath{
        public boolean isSuShu(int x){
            for(int i=2;i<=x/2;i++){
                if(x%i==0)
                    return false;
                }
            return true;
        }
    }

     

    二、取数的个位,十位,百位....问题:

           知识点:

                    假设那么数为x,不知道是多少位的.

                    你可以使用下面的表达式:

                     个位:x%10

                     十位:x/10%10

                     百位:x/100%10

                     千位:x/1000%10

    package JingDian;
    
    public class shuixianshu {
        public static void main(String[] args){
        myMath2 shuixian = new myMath2();
        for(int i=100;i<999;i++){
            if(shuixian.shuixianshu(i)==true)
            System.out.println(i);
          }
        }
    }
    
    class myMath2{
        public boolean shuixianshu(int x){
            int i=0,j=0,k=0;
            //获取一个数的个位十位百位
            i=x/100%10;
            j=x/10%10;
            k=x%10;
            if(x==i*i*i+j*j*j+k*k*k){
                return true;
            }else{
            return false;
            }
        }
    }

    三、分解质因数问题:

         

         

    package JingDian;
    
    public class fenjieshu {
        public fenjieshu(){}
        public void fenjie(int n){
            for(int i=2;i<=n/2;i++){
                if(n%i==0){
                    System.out.println(i+"");
                    //递归调用
                    fenjie(n/i);
                }
            }
            System.out.println(n);
            System.exit(0);
        }
        
        public static void main(String[] args){
            String str="";
            fenjieshu f=new fenjieshu();
            str = javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
            int N = 0;
            try{
                N = Integer.parseInt(str);
            }catch(NumberFormatException e){
                e.printStackTrace();
                
            }
            System.out.println(N+"分解质因数:"+N+"=");
            f.fenjie(N);
        }
    }
  • 相关阅读:
    BZOJ 4769: 超级贞鱼 逆序对 + 归并排序
    BZOJ 4897: [Thu Summer Camp2016]成绩单 动态规划
    luogu 4059 [Code+#1]找爸爸 动态规划
    CF718C Sasha and Array 线段树 + 矩阵乘法
    计蒜客 2238 礼物 期望 + 线段树 + 归并
    BZOJ 2157: 旅游 (结构体存变量)
    BZOJ 3786: 星系探索 ETT
    BZOJ 3545: [ONTAK2010]Peaks 启发式合并 + 离线 + Splay
    Spring的几种初始化和销毁方法
    SpringCloud之Zuul高并发情况下接口限流(十二)
  • 原文地址:https://www.cnblogs.com/skylar/p/3661138.html
Copyright © 2020-2023  润新知