前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 版 C 语言经典 100 例(11 - 15)

Java 版 C 语言经典 100 例(11 - 15)

作者头像
村雨遥
发布2020-06-28 12:10:19
4610
发布2020-06-28 12:10:19
举报
文章被收录于专栏:JavaParkJavaPark

1. 实例 11

1.1 题目

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

1.2 思路

兔子的规律为数列 1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始),利用递归求每个月的兔子数,然后求和

1.3 代码

代码语言:javascript
复制
/**
 * @ClassName : Eleven
 * @Author : cunyu1943
 * @Date : 2020/6/19 16:42
 * @Version : 1.0
 * @Description : 实例 11
 **/

public class Eleven {
    public static void main(String[] args) throws Exception {

        for (int i = 1; i <= 40; i++) {
            int sum = 0;
            sum += Sum(i);
            System.out.format("第 %d 个月的兔子总数是: %d", i, sum);
            System.out.println();
        }
    }

    /**
     * @return 第 n 个月的兔子数
     * @MethodName Sum
     * @Author cunyu1943
     * @Date 17:07 2020/6/19
     * @Param n 第 n 个月
     * @Description 求第 n 个月的兔子数
     **/
    public static int Sum(int n) {
        int count = 0;
        // 第 1, 2 个月为 1,从第三个三月开始为前两月之和
        if (n == 1 || n == 2) {
            return 1;
        } else {
            count = Sum(n - 1) + Sum(n - 2);
        }
        return count;
    }
}

1.4 结果

代码语言:javascript
复制
第 1 个月的兔子总数是: 1
第 2 个月的兔子总数是: 1
第 3 个月的兔子总数是: 2
第 4 个月的兔子总数是: 3
第 5 个月的兔子总数是: 5
第 6 个月的兔子总数是: 8
第 7 个月的兔子总数是: 13
第 8 个月的兔子总数是: 21
第 9 个月的兔子总数是: 34
第 10 个月的兔子总数是: 55
第 11 个月的兔子总数是: 89
第 12 个月的兔子总数是: 144
第 13 个月的兔子总数是: 233
第 14 个月的兔子总数是: 377
第 15 个月的兔子总数是: 610
第 16 个月的兔子总数是: 987
第 17 个月的兔子总数是: 1597
第 18 个月的兔子总数是: 2584
第 19 个月的兔子总数是: 4181
第 20 个月的兔子总数是: 6765
第 21 个月的兔子总数是: 10946
第 22 个月的兔子总数是: 17711
第 23 个月的兔子总数是: 28657
第 24 个月的兔子总数是: 46368
第 25 个月的兔子总数是: 75025
第 26 个月的兔子总数是: 121393
第 27 个月的兔子总数是: 196418
第 28 个月的兔子总数是: 317811
第 29 个月的兔子总数是: 514229
第 30 个月的兔子总数是: 832040
第 31 个月的兔子总数是: 1346269
第 32 个月的兔子总数是: 2178309
第 33 个月的兔子总数是: 3524578
第 34 个月的兔子总数是: 5702887
第 35 个月的兔子总数是: 9227465
第 36 个月的兔子总数是: 14930352
第 37 个月的兔子总数是: 24157817
第 38 个月的兔子总数是: 39088169
第 39 个月的兔子总数是: 63245986
第 40 个月的兔子总数是: 102334155

2. 实例 12

2.1 题目

判断 101 到 200 之间的素数。

2.2 思路

用一个数分别去除 2 到 sqrt(这个数),如果能被整除, 则表明此数不是素数,反之则是素数

2.3 代码

代码语言:javascript
复制
/**
 * @ClassName : Twelve
 * @Author : cunyu1943
 * @Date : 2020/6/19 17:19
 * @Version : 1.0
 * @Description : 实例 12
 **/

public class Twelve {
    public static void main(String[] args) throws Exception {
        int count = 0;
        for (int i = 101; i < 200; i++) {
            // 设置标志位,true 则是素数,false 则不是
            boolean flag = true;
            for (int j = 2; j <= (int) Math.sqrt(i); j++) {
                if (i % j == 0) {
                    flag = false;
                }
            }
            // 根据标志位进行输出
            if (flag == true) {
                System.out.print(i + "\t");
                count += 1;
                // 每行输出 5 个就换行
                if (count % 5 == 0) {
                    System.out.println();
                }
            }
        }
    }
}

2.4 结果

代码语言:javascript
复制
101	103	107	109	113
127	131	137	139	149
151	157	163	167	173
179	181	191	193	197
199

3. 实例 13

3.1 题目

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

3.2 思路

遍历所有三位数,将每个数分解出个位、十位、百位,然后判断是否满足水仙花数,满足就输出

3.3 代码

代码语言:javascript
复制
/**
 * @ClassName : Thirteen
 * @Author : cunyu1943
 * @Date : 2020/6/19 17:32
 * @Version : 1.0
 * @Description : 实例 13
 **/

public class Thirteen {
    public static void main(String[] args) throws Exception {
        int digit = 0;
        int decade = 0;
        int unit = 0;
        System.out.println("水仙花数如下:");
        // 遍历三位数
        for (int i = 100; i < 1000; i++) {
            // 分别计算个位、十位、百位
            digit = i / 100;
            decade = i / 10 % 10;
            unit = i % 10;
            // 若满足水仙花数条件则输出
            if (i == (digit * digit * digit + unit * unit * unit + decade * decade * decade)) {
                System.out.println(i);
            }
        }
    }
}

3.4 结果

代码语言:javascript
复制
水仙花数如下:
153
370
371
407

4. 实例 14

4.1 题目

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

4.2 思路

对于要分解的正整数 n,先找出一个最小的质数 k,

  1. 若该质数恰好等于 n,,则说明分解过程结束,打印输出就可以了
  2. 若 n 能被 k 整除,则打印 k 的值,同时 ,然后重复执行这一步
  3. 若 n 不能被 k 整除,则 ,重复执行 (1)

4.3 代码

代码语言:javascript
复制
import java.util.Scanner;

/**
 * @ClassName : Fourteen
 * @Author : cunyu1943
 * @Date : 2020/6/20 8:39
 * @Version : 1.0
 * @Description : 实例 14
 **/

public class Fourteen {
    public static void main(String[] args) throws Exception {
        Scanner inputs = new Scanner(System.in);
        System.out.println("输入要分解的数:");
        int num = inputs.nextInt();

        System.out.print(num + " = ");
        for (int i = 2; i <= num; i++) {
            // 若 num 能被 i 整除,则打印 i,同时将 num 除以 i 的商,作为新的正整数 num
            while (num % i == 0) {
                System.out.print(i + "");
                num /= i;
                if (num != 1) {
                    System.out.print(" * ");
                }
            }
        }
    }
}

4.4 结果

代码语言:javascript
复制
输入要分解的数:
34
34 = 2 * 17

5. 实例 15

5.1 题目

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

5.2 思路

直接利用条件运算符嵌套判断打印输出即可

5.3 代码

代码语言:javascript
复制
import java.util.Scanner;

/**
 * @ClassName : Fifteen
 * @Author : cunyu1943
 * @Date : 2020/6/20 9:01
 * @Version : 1.0
 * @Description : 实例 15
 **/

public class Fifteen {
    public static void main(String[] args) throws Exception {
        Scanner input = new Scanner(System.in);

        System.out.println("输入成绩:");
        int score = input.nextInt();

        // 利用条件语句进行判断
        if (score >= 90) {
            System.out.println("A");
        } else if (score >= 60 && score < 90) {
            System.out.println("B");
        } else {
            System.out.println("C");
        }
    }
}

5.4 结果

代码语言:javascript
复制
输入成绩:
78
B
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 村雨遥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 实例 11
    • 1.1 题目
      • 1.2 思路
        • 1.3 代码
          • 1.4 结果
          • 2. 实例 12
            • 2.1 题目
              • 2.2 思路
                • 2.3 代码
                  • 2.4 结果
                  • 3. 实例 13
                    • 3.1 题目
                      • 3.2 思路
                        • 3.3 代码
                          • 3.4 结果
                          • 4. 实例 14
                            • 4.1 题目
                              • 4.2 思路
                                • 4.3 代码
                                  • 4.4 结果
                                  • 5. 实例 15
                                    • 5.1 题目
                                      • 5.2 思路
                                        • 5.3 代码
                                          • 5.4 结果
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档