本文已同步至:村雨遥

实例 21

题目

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

剖析

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

实现

/** * 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) 即可!

实现

/** * 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 岁。请问第五个人多大?

剖析

其实就是一个反向遍历的过程,咱们晓得了第一个人的年龄,只有反推回去就能够晓得第五个人的年龄了,这是一个等差数列。

实现

/** * 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 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

剖析

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

实现

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 位数之后,合成出各位上的数字,而后判断个位和万位、十位与千位是否雷同即可!

实现

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 + " 不是一个回文数");        }    }}

后果