A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 驰马定中原 中级黑马   /  2016-6-2 00:24  /  1109 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
public class Prog1{
[size=10.5000pt]        public static void main(String[] args){
[size=10.5000pt]        [size=10.5000pt]        int n = 10;
[size=10.5000pt]        [size=10.5000pt]        System.out.println("第"+n+"个月兔子总数为"+fun(n));
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        private static int fun(int n){
[size=10.5000pt]        [size=10.5000pt]        if(n==1 || n==2)
[size=10.5000pt]        [size=10.5000pt]           return 1;
[size=10.5000pt]        [size=10.5000pt]        else
[size=10.5000pt]        [size=10.5000pt]           return fun(n-1)+fun(n-2);
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]}
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class Prog2{
        public static void main(String[] args){
                int m = 1;
                int n = 1000;
                int count = 0;
                //统计素数个数
                for(int i=m;i<n;i++){
                        if(isPrime(i)){
                                count++;
                                System.out.print(i+" ");
                                if(count%10==0){
                                        System.out.println();
                                }
                        }
                }
                System.out.println();
                System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");
        }
        //判断素数
        private static boolean isPrime(int n){
                boolean flag = true;
                if(n==1)
                  flag = false;
                else{
                        for(int i=2;i<=Math.sqrt(n);i++){
                        if((n%i)==0 || n==1){
                                flag = false;
                                break;
                        }
                         else
                           flag = true;
                  }
                }
                return flag;
        }
}
【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
public class Prog3{
        public static void main(String[] args){
                for(int i=100;i<1000;i++){
                        if(isLotus(i))
                           System.out.print(i+" ");
                }
                System.out.println();
        }
        //判断水仙花数
        private static boolean isLotus(int lotus){
                int m = 0;
                int n = lotus;
                int sum = 0;
                m = n/100;
                n  -= m*100;
                sum = m*m*m;
                m = n/10;
                n -= m*10;
                sum += m*m*m + n*n*n;
                if(sum==lotus)
                        return true;
                else
                        return false;
                }
}
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
public class Prog4{
        public static void main(String[] args){
                int n = 13;
                decompose(n);
        }
        private static void decompose(int n){
                System.out.print(n+"=");
                for(int i=2;i<n+1;i++){
                        while(n%i==0 && n!=i){
                                n/=i;
                                System.out.print(i+"*");
                        }
                        if(n==i){
                                System.out.println(i);
                                break;
                        }
                }
        }
}
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:(a>b)?a:b这是条件运算符的基本例子。
public class Prog5{
[size=10.5000pt]        public static void main(String[] args){
[size=10.5000pt]        [size=10.5000pt]        int n = -1;
[size=10.5000pt]        [size=10.5000pt]        try{
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        n = Integer.parseInt(args[0]);
[size=10.5000pt]        [size=10.5000pt]        }catch(ArrayIndexOutOfBoundsException e){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        System.out.println("请输入成绩");
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        return;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        grade(n);
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        //成绩等级计算
[size=10.5000pt]        private static void grade(int n){
[size=10.5000pt]        [size=10.5000pt]        if(n>100 || n<0)
[size=10.5000pt]        [size=10.5000pt]          System.out.println("输入无效");
[size=10.5000pt]        [size=10.5000pt]        else{
[size=10.5000pt]        [size=10.5000pt]          String str = (n>=90)?"分,属于A等":((n>60)?"分,属于B等":"分,属于C等");
[size=10.5000pt]        [size=10.5000pt]          System.out.println(n+str);
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]}

9 个回复

倒序浏览
学习了,第2,3,4改成了键盘录入数据,都完美实现
回复 使用道具 举报
顶一个!!!
回复 使用道具 举报
顶一个顶一个顶一个
回复 使用道具 举报
第一个没看明白,但是后几个都是很经典的基础练习题
回复 使用道具 举报
666虽然写过了,但是感觉没你写的好
回复 使用道具 举报
不错不错,进来学习一下
回复 使用道具 举报
这是什么啊
回复 使用道具 举报
水仙花数的判断程序写的太复杂了 , 为什么不用 Math.pow( a , b ) 呢?
public class Prog3{
        public static void main(String[] args){
                for(int i=100;i<1000;i++) {

                        int bai = i / 100 % 10;
                        int shi = i / 10 % 10;
                        int ge  = i / 1 % 10;

                        if (Math.pow(bai,3)+Math.pow(shi,3)+Math.pow(ge,3) == i ) {
                                System.out.println(i + "是水仙花数");
                        }
                }
        }
}
回复 使用道具 举报
顶一个    学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马