前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >那些年,我们一起做过的 Java 课后练习题(21 - 25)

那些年,我们一起做过的 Java 课后练习题(21 - 25)

作者头像
村雨遥
发布2022-06-15 11:09:49
3050
发布2022-06-15 11:09:49
举报
文章被收录于专栏:JavaPark

实例 21

题目

求 1! + 2! + 3! + … + 20! 的和。

分析

循环求 1 ~ 20 的阶乘,然后将其进行求和即可。

实现

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author : cunyu
 * @version : 1.0
 * @email : 747731461@qq.com
 * @website : https://cunyu1943.github.io
 * @date : 2021/6/3 22:48
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example21
 * @description :
 */

public class Example21 {
    public static void main(String[] args) {
        long sum = 0;
        long fac = 1;
        for (int i = 1; i <= 20; i++) {
            fac *= i;
            sum += fac;
        }

        System.out.println("1!+2!+3!+……+20! = " + sum);
    }
}

结果

实例 22

题目

利用递归方法求 5!

分析

找到边界条件 num = 1,然后调用 fac(num) = num * fac(num - 1) 即可!

实现

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author : cunyu
 * @version : 1.0
 * @email : 747731461@qq.com
 * @website : https://cunyu1943.github.io
 * @date : 2021/6/3 22:50
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example22
 * @description :
 */

public class Example22 {
    public static void main(String[] args) {
        System.out.println("5! = " + fac(5));
    }

    /**
     * 求 num 的阶乘
     *
     * @param num
     * @return num 的阶乘
     */
    public static long fac(int num) {
        if (num == 1) {
            return 1;
        } else {
            return num * fac(num - 1);
        }
    }
}

结果

实例 23

题目

有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多大?

分析

其实就是一个反向遍历的过程,我们知道了第一个人的年龄,只要反推回去就可以知道第五个人的年龄了,这是一个等差数列。

实现

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author : cunyu
 * @version : 1.0
 * @email : 747731461@qq.com
 * @website : https://cunyu1943.github.io
 * @date : 2021/6/3 22:54
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example23
 * @description :
 */

public class Example23 {
    public static void main(String[] args) {
        int age = 10;
        for (int i = 2; i <= 5; i++) {
            age += 2;
        }

        System.out.println("第 5 个人的年龄:" + age);
    }
}

结果

实例 24

题目

给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

分析

输入整数之后,然后将其转换为字符串,通过求字符串长度就知道这个数字时几位数了,然后再反向打印该字符串即可!

实现

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

/**
 * Created with IntelliJ IDEA.
 *
 * @author : cunyu
 * @version : 1.0
 * @email : 747731461@qq.com
 * @website : https://cunyu1943.github.io
 * @date : 2021/6/3 23:14
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example24
 * @description :
 */

public class Example24 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入一个整数");
        long num = scanner.nextLong();
        String str = Long.toString(num);
        System.out.println("该数是一个 " + str.length() + " 位数!");
        System.out.print("该数逆序输出为:");
        for (int i = str.length() - 1; i >= 0; i--) {
            System.out.print(str.charAt(i));
        }
    }
}

结果

实例 25

题目

一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相同。

分析

既然已经限定了 5 位数,那么输入一个 5 位数之后,分解出各位上的数字,然后判断个位和万位、十位与千位是否相同即可!

实现

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

/**
 * Created with IntelliJ IDEA.
 *
 * @author : cunyu
 * @version : 1.0
 * @email : 747731461@qq.com
 * @website : https://cunyu1943.github.io
 * @date : 2021/6/3 23:19
 * @project : Java 编程实例
 * @package : PACKAGE_NAME
 * @className : Example25
 * @description :
 */

public class Example25 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入一个 5 位数");
        int num = scanner.nextInt();
        String str = Integer.toString(num);
        if (str.charAt(0) == str.charAt(str.length() - 1) && str.charAt(1) == str.charAt(str.length() - 1 - 1)) {
            System.out.println(num + " 是一个回文数");
        } else {
            System.out.println(num + " 不是一个回文数");
        }
    }
}

结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实例 21
    • 题目
      • 分析
        • 实现
          • 结果
          • 实例 22
            • 题目
              • 分析
                • 实现
                  • 结果
                  • 实例 23
                    • 题目
                      • 分析
                        • 实现
                          • 结果
                          • 实例 24
                            • 题目
                              • 分析
                                • 实现
                                  • 结果
                                  • 实例 25
                                    • 题目
                                      • 分析
                                        • 实现
                                          • 结果
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档