zoukankan      html  css  js  c++  java
  • JAVA练习

    1.鬼谷猜想:

    鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 1。

    import java.util.Scanner;
    public class Test {
        public static void gg() {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入一个自然数");
            int gg=s.nextInt();
            while(gg!=1) {
                if(gg%2==0) {
                    gg=gg/2;
                }else {
                    gg=gg*3+1;
                }
            }
            System.out.println(gg);
            s.close();
        }
        public static void main(String[] args) {
            gg();
        }
    
    }

    2.求完全数:

    编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数。

    完全数分解公式:如果p是质数,且2^p-1也是质数,那么(2^p-1)*2^(p-1)便是一个完全数。

    public class Test {
        public static void cn() {
            for(int i =2;i<=1000;i++){
                int p = 0;
                for(int j = 2;j<i;j++){
                    if(i%j==0){
                        p=1;
                    }
                }
                if(p==0){
                    for(int c=1;c<=10000;c++) {
                        double a = Math.pow(2, i)-1;
                        double b = Math.pow(2, i-1);
                        if(c==a*b) {
                            System.out.println("完全数:"+c);
                        }
                    }
                }
            }
        }
        public static void main(String[] args) {
            cn();
        }
    
    }

    3.整除

    一个整数的各位数字之和能被 9 整除,则该数也能被 9 整除。编程验证给定的整数能否被 9 整除。

    import java.util.Scanner;
    public class Test {
        public static void nine() {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入一个整数:");
            int i = s.nextInt();
            String st = Integer.toString(i);    
            int sum =0;
            for(int j=0;j<=st.length()-1;j++) {
                //截取每一位数字的字符串并转成数字进行相加
                int it = Integer.parseInt(st.substring(j, j+1));
                sum+=it;
            }
            if(sum%9==0) {
                System.out.println("该数可以被9整除");
            
            }else {
                System.out.println("该数不可以被9整除");
            }
            s.close();
        }
        public static void main(String[] args) {
            nine();
        }
    
    }    

    4.质因数分解

    将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。

    import java.util.ArrayList;
    import java.util.Scanner;
    public class Test {
        public static void fj() {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入一个正整数:");
            int in = s.nextInt();
            ArrayList<Integer> a = new ArrayList<Integer>();
            StringBuilder sb = new StringBuilder();
            for(int i =2;i<=1000;i++){
                int p = 0;
                for(int j = 2;j<i;j++){
                    if(i%j==0){
                        p=1;
                    }
                }
                if(p==0){
                    a.add(i);//将1000以内的质数加入List
                }
            }
            int d = in;
            for(int j=0;j<a.size();j++) {
                while(d%a.get(j)==0) {//除List内的数,直到不能整除
                    d=d/a.get(j);//除完赋值,做下一次的分子
                    String st = Integer.toString(a.get(j))+"*";
                    //把符合条件的质数加入StringBuilder
                    sb.append(st);
                }
            }
            System.out.println(in+"="+sb.substring(0, sb.length()-1));//截取一下,因为最后一个数多了个*
            s.close();
        }
        public static void main(String[] args) {
            fj();
        }
    
    }    
  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    玩转算法2.3常见的算法复杂度分析
    数组中的逆序对
    一些基本的代码模板
    230. Kth Smallest Element in a BST
    42. Trapping Rain Water
    api token
    仿百度查询
    baidu jsonp
    How to fix Error: laravel.log could not be opened?
  • 原文地址:https://www.cnblogs.com/whwjava/p/8722585.html
Copyright © 2011-2022 走看看