美文网首页
第三周习题

第三周习题

作者: 十六只猴子王 | 来源:发表于2019-03-24 19:06 被阅读0次

    题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三
    个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    package exercise;
    
    import java.util.*;
    
    public class MainCorrect {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int month = in.nextInt();
            int t = 1, n=0,oldT=1, a;
            if (month == 1)
                System.out.println("第一个月兔子数:" + 1);
            else if (month == 2)
                System.out.println("第二个月兔子数:" + 1);
            else if (month >= 3) {
                for (int i = 3; i <= month; i++) {
                    n = t+oldT;
                    oldT=t;
                    t=n;
                }
                System.out.println("第"+month+"个月兔子数:" + n);
            }
        }
    }
    

    题目:判断 101-200 之间有多少个素数,并输出所有素数。
    程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除, 则表明
    此数不是素数,反之是素数。

    package exercise;
    
    public class Main2 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            for (int i = 101; i <= 200; i++) {
                int ok = 1;
                for (int j = 2; j < i; j++) {
                    if (i % j == 0) {
                        ok = 0;
                        break;
                    }
                }
                if(ok==1)
                System.out.println("这个数是质数:" +i);
            }
        }
    }
    

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和
    等于该数本身。例如:153 是一个 "水仙花数 ",因为 153=1 的三次方+5 的三次方+3 的
    三次方。

    public class Main3 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int i1, i2, i3;
            for (int i = 101; i < 1000; i++) {
                i1=i/100;
                i2=i%100/10;
                i3=i%10;
                if(Math.pow(i3, 3)+Math.pow(i2, 3)+Math.pow(i1, 3)==i) {
                    System.out.println(i+"是水仙花数");
                }
            }
        }
    }
    

    题目:将一个正整数分解质因数。例如:输入 90,打印出 90=233*5。
    程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:
    (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果 n <> k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数
    你 n,重复执行第一步。
    (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。

    package exercise;
    
    import java.util.Scanner;
    
    public class Main4 {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int k=2;
            while(k<=n) {
                if (k == n) {
                    System.out.println(n);
                    break;}
                 else if (n % k == 0) {
                    System.out.print(k + " * ");
                    n = n/k;
                } else
                    k++;
            }
        }
    }
    

    题目:利用条件运算符的嵌套来完成此题:学习成绩> =90 分的同学用 A 表示,60-89 分之
    间的用 B 表示,60 分以下的用 C 表示。

    package exercise;
    
    import java.util.*;
    
    public class Main5 {
        public static void main(String[] args) {
            int x;
            char grade;
            Scanner s = new Scanner(System.in);
            x = s.nextInt();
            grade = x >= 90 ? 'A' : x >= 60 ? 'B' : 'C';
            System.out.println("等级:" + grade);
        }
    }
    

    相关文章

      网友评论

          本文标题:第三周习题

          本文链接:https://www.haomeiwen.com/subject/ysxpvqtx.html