• 50道经典的JAVA编程题 (1-5)


    后天java考试,现在闲着也是闲着,来做做java题吧。

    前不久在网上看见了50道java算法编程题,感觉还不错,记得大一学C语言的时候做过一些,现在用java来回顾下吧,也算应付考试吧。

    代码要是有啥不完美的地方还请各位积极指出啊,小的还是菜鸟啦,出错难免的哦~~~

    暂时一篇帖子放5道吧,代码比较占地方,等全部做完了发一个目录吧


    【程序1】 TestRabbit.java
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

    package test50;
    
    
    
    /**
    
     * @author VellBibi
    
     *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的总兔子对数为多少? 
    
     *1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21...
    
     */
    
    public class TestRabbit {
    
    
    
        /**
    
         * @param m 总月数
    
         * @return 这月兔子对数
    
         */
    
        public static int sumRabbitNumber(int m){
    
            int n = 1;//第0个月对数
    
            int e = 0;//第0个月对数
    
            int cup = 0;
    
            for(int i=1; i<m; i++){
    
                cup = n;
    
                n = e + n;
    
                e = cup;
    
            }
    
            return n;
    
        }
    
        
    
        public static void main(String[] args) {
    
            
    
            for(int i=1; i<=10; i++){
    
                System.out.print(sumRabbitNumber(i)+",");
    
            }
    
        }
    
    
    
    }
    

    image


    【程序2】 FindPrimeNumber.java
    题目:判断101-200之间有多少个素数,并输出所有素数。
    1.程序分析:判断素数的方法:用一个数分别去除2~sqrt(n)或者2~n/2,常用2~n/2,因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n .如果能被整除,
    则表明此数不是素数,反之是素数。

    package test50;
    
    
    
    /**
    
     * @author VellBibi
    
     *题目:判断101-200之间有多少个素数,并输出所有素数。
    
     *1.程序分析:判断素数的方法:用一个数分别去除2~sqrt(n)或者2~n/2,常用2~n/2,
    
     *因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n .如果能被整除, 
    
     *则表明此数不是素数,反之是素数。
    
     */
    
    public class FindPrimeNumber {
    
    
    
        /**
    
         * 判断n是不是质数
    
         * @param n
    
         * @return
    
         */
    
        public static boolean isPrimeNumber(int n){
    
            
    
            if(n == 2) return true;
    
            
    
            for(int i=2; i<=n/2; i++){
    
                if(n % i == 0) return false;
    
            }
    
            return true;
    
        }
    
    
    
        public static void main(String[] args) {
    
            int n = 0;
    
            for(int i=101; i<=200; i++){
    
                if(isPrimeNumber(i)){
    
                    n++;
    
                    System.out.print(i + ",");
    
                }
    
            }
    
            System.out.println("
    101-200之间有"+n+"个素数");
    
        }
    
    }
    

    image


    【程序3】FindDaffodilNumber.java
    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
    153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    package test50;
    
    
    
    /**
    
     * @author VellBibi
    
     *题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 
    
     *153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
    
     *1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
    
     */
    
    public class FindDaffodilNumber {
    
    
    
        public static boolean isDaffodNumber(int n){
    
            char[] ch = String.valueOf(n).toCharArray();
    
            int cup = 0;
    
            for(int i=0; i<ch.length; i++){
    
                cup = cup + (int)Math.pow(Integer.parseInt(String.valueOf(ch[i])), 3) ;
    
            }
    
            
    
            return (cup == n);
    
        }
    
        
    
        public static void main(String[] args) {
    
            for(int i=100; i<1000; i++){
    
                if(isDaffodNumber(i)){
    
                    System.out.print(i + ",");
    
                }
    
            }
    
        }
    
    
    
    }
    
    image


    【程序4】Explode.java
    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    (1)运用两层循环。
    (2)外循环得到2~n之间的所有质数,内循环将n循环除以质数,知道不能整除。
    (3)要是内循环n等于1了就说明n被完全整除了。

    package test50;
    
    import java.io.BufferedReader;
    
    import java.io.IOException;
    
    import java.io.InputStreamReader;
    
    
    
    /**
    
     * @author VellBibi
    
     * 【程序4】Explode.java 
    
     *题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
    
     *程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
    
     *(1)运用两层循环
    
     *(2)外循环得到2~n之间的所有质数,内循环将n循环除以质数,知道不能整除
    
     *(3)要是内循环n等于1了就说明n被完全整除了
    
     */
    
    public class Explode {
    
        
    
        /**
    
         * 判断n是不是质数
    
         * @param n
    
         * @return
    
         */
    
        public static boolean isPrimeNumber(int n){
    
            
    
            if(n == 2) return true;
    
            
    
            for(int i=2; i<=n/2; i++){
    
                if(n % i == 0) return false;
    
            }
    
            return true;
    
        }
    
    
    
        public static void main(String[] args) {
    
            BufferedReader buffer = new BufferedReader(new InputStreamReader(
    
                    System.in));
    
            int N = 0;
            try {
    
                N = Integer.parseInt(buffer.readLine());
    
            } catch (IOException e) {
    
                e.printStackTrace();
    
            }
    
            System.out.print(N+"=");
    
            for(int i=2; i<N; i++){
    
                if(!isPrimeNumber(i)) continue;
    
                while(N%i == 0){
    
                    System.out.print(i);
    
                    N = N/i;
    
                    if(N != 1) System.out.print("*");
    
                    else break;
    
                }
    
            }
    
            if(N != 1) System.out.println(N);
    
        }
    
    
    
    }
    

    image


    【程序5】 ConditionOperator.java
    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

    package test50;
    
    
    
    import java.io.BufferedReader;
    
    import java.io.IOException;
    
    import java.io.InputStreamReader;
    
    
    
    /**
    
     * @author VellBibi
    
     *【程序5】 ConditionOperator.java 
    
     *题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 
    
     *1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
    
     */
    
    public class ConditionOperator {
    
    
    
        public static void main(String[] args) {
    
            BufferedReader buffer = new BufferedReader(new InputStreamReader(
    
                    System.in));
    
            int N = 0;
    
            try {
    
                N = Integer.parseInt(buffer.readLine());
    
            } catch (IOException e) {
    
                e.printStackTrace();
    
            }
    
            
    
            System.out.println("学习成绩为:" + ((N < 60) ? "C" : (N < 90) ? "B" : "A"));
    
        }
    
    
    
    }
    

    imageimageimage

  • 相关阅读:
    jmeterxpath的用法
    Jmeter中Websocket协议支持包的使用
    http 错误代码汇总
    Jmeter正则表达和xpath
    SSH Secure Shell Client安装和使用
    SecureCRT安装步骤
    DataRow转化成对象
    vb.net 与 c# 的switch ... case ...的一个重要区别
    DataRow 转换成Entity实例
    Sqlserver查找数据库中含有某字段的所有表
  • 原文地址:https://www.cnblogs.com/VellBibi/p/3500012.html
Copyright © 2020-2023  润新知