后天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)+",");
        }
    }

}

【程序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("\n101-200之间有"+n+"个素数");
    }
}

【程序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 + ",");
            }
        }
    }

}

【程序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);
    }

}

【程序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"));
    }

}

50道经典的JAVA编程题 (1-5)的更多相关文章

  1. 50道经典的JAVA编程题(汇总)

    这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...

  2. 50道经典的JAVA编程题(46-50)

    50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...

  3. 50道经典的JAVA编程题(41-45)

    50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...

  4. 50道经典的JAVA编程题(36-40)

    50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...

  5. 50道经典的JAVA编程题(31-35)

    50道经典的JAVA编程题(31-35),今天考完了java,在前篇博客里面贴出了题了,见:<今天考试的JAVA编程题>.考完了也轻松了,下个星期一还考微机原理呢,啥都不会,估计今天就做到 ...

  6. 50道经典的JAVA编程题(26-30)

    50道经典的JAVA编程题(26-30),这么晚了,早点睡了要,明早8点考java祝我好运吧!!!晚安~ [程序26]Ex26.java(跳过了,好没意思的题啊)题目:请输入星期几的第一个字母来判断一 ...

  7. 50道经典的JAVA编程题(21-25)

    50道经典的JAVA编程题(21-25),明天早上java考试了,还是坚持做题吧...这题比老师的题好多了! [程序21]TestJieCheng.java题目:求1+2!+3!+...+20!的和1 ...

  8. 50道经典的JAVA编程题 (16-20)

    50道经典的JAVA编程题 (16-20),用了快一个下午来做这10道题了,整理博客的时间貌似大于编程的时间啊..哈哈 [程序16]Nine.java 题目:输出9*9口诀. 1.程序分析:分行与列考 ...

  9. 50道经典的JAVA编程题 (11-15)

    50道经典的JAVA编程题 (11-15),新年的第一天,继续啦...\(^o^)/~,这50道题都跨年了啊...哈哈 [程序11] TestTN.java 题目:有1.2.3.4个数字,能组成多少个 ...

  10. 50道经典的JAVA编程题 (6-10)

    50道经典的JAVA编程题 (6-10),今晚做了10道了,累死了...感觉难度不是很大,就是不知道是不是最好的实现方法啊!希望大神们能给指点哈... [程序6]GCDAndLCM.java 题目:输 ...

随机推荐

  1. 微软的Dll管理方案及其变迁(Side-by-side assembly)

    本文简要介绍Side-by-side assembly技术,探讨在插件技术中使用类似方法的可能. 什么是Side-ty-side Assembly Side-by-side assembly是Wind ...

  2. Kerbose

    http://blog.csdn.net/wulantian/article/details/42418231

  3. ***php 数组添加关联元素的方法小结(关联数组添加元素)

    我们这里介绍的是在数组中再增加关联数组了,这个就合成了多维数组,下面我来给大家举几个实例,希望对各位同学会有所帮助哈. 在"php 数组添加元素方法总结这篇文章中介绍了如何给数组添加元素,那 ...

  4. HDU4714+三分

    题意:给定N个点,每个点有初始位置和初始速度. 问:在哪个时刻 使得所有的点的最大距离值最小. 分析:一开始枚举两两之间的最大值,然后在最大值中求一个最小值...(WA:题意严重理解不清..) 由两点 ...

  5. 压缩/解压 zip 时遇到 java.lang.IllegalArgumentException: MALFORMED

    因为zip文件名为中文,或者压缩内容有中文 解决方法: 错误详情: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinde ...

  6. js 中多维数组的深拷贝的多种实现方式

    因为javascript分原始类型与引用类型(与java.c#类似).Array是引用类型,所以直接用=号赋值的话,只是把源数组的地址(或叫指针)赋值给目的数组,并没有实现数组的数据的拷贝.另外对一维 ...

  7. iOS开发之集成ijkplayer视频直播

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  8. 钣金的折弯成型工艺(Press Braking)

    钣金的折弯成型:金属板材的弯曲和成型是在弯板机上进行的,将要成型的板材放置在弯板机上,用升降杠杆将制动片提起,工件滑动到适当的位置,然后将制动片降低到要成型的板材上,通过对弯板机上的弯曲杠杆施力而实现 ...

  9. Android tab_Host页面跳转,传值,刷新等问题汇总

    之前做了一个项目是关于Tab_Host的,现在完成了恰逢闲余写份总结,主要涉及里面遇到问题以及解决方案的. (首先说明这份代码是在eoe 下载的,这里感谢分享的那位朋友,限于我的工程是公司的不能拿出来 ...

  10. socket.io 使用

    socket.io是一个以实现跨浏览器.跨平台的实时应用为目的的项目.针对不同的浏览器版本或者不同客户端会做自动降级处理,选择合适的实现方式(websocket, long pull..),隐藏实现只 ...