1. 实例 26
1.1 题目
利用递归方法求5!
1.2 思路
- 当 $x = 0、1$ 时,$0!=1,1!=1$
- 当 $x > 1$ 时,$x ! = (x-1)!*x$
1.3 代码
/**
* @ClassName : TwentySix
* @Author : cunyu
* @Date : 2020/6/23 20:51
* @Version : 1.0
* @Description : 实例 26
**/
public class TwentySix {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 6; i++) {
System.out.format("%d! = %dn", i, fact(i));
}
}
/**
* @param n 整数 n
* @return 整数 n 的阶乘
* @Description 求 n 的阶乘
* @date 2020/6/23 20:54
* @author cunyu1943
* @version 1.0
*/
public static int fact(int n) {
int sum;
if (n == 1 || n == 0) {
sum = 1;
} else {
sum = n * fact(n - 1);
}
return sum;
}
}
1.4 结果
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
2. 实例 27
2.1 题目
将所输入的5个字符,以相反顺序打印出来。
2.2 思路
见代码注释即可
2.3 代码
import java.util.Scanner;
/**
* @ClassName : TwentySeven
* @Author : cunyu
* @Date : 2020/6/23 22:58
* @Version : 1.0
* @Description : 实例 27
**/
public class TwentySeven {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.println("输入五个字符");
// 将输入的字符串转换为字符数组
char[] charArray = input.next().toCharArray();
System.out.println("逆序输出");
// 逆序输出
for (int i = charArray.length - 1; i >= 0; i--) {
System.out.format("%c", charArray[i]);
}
}
}
2.4 结果
输入五个字符
qwert
逆序输出
trewq
3. 实例 28
3.1 题目
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
3.2 思路
假设第 5 个人为 $x$ 岁,则第 4 个人为 $x-2$ 岁,第 3 个人为 $x - 2-2$ 岁,以此类推,第一个人应该是 $x - 4 * 2$ 岁,而第一个人为 10 岁,所以 $x - 4*2=10$
3.3 代码
/**
* @ClassName : TwentyEight
* @Author : cunyu
* @Date : 2020/6/23 21:33
* @Version : 1.0
* @Description : 实例 28
**/
public class TwentyEight {
public static void main(String[] args) throws Exception {
int age;
age = 4 * 2 + 10;
System.out.println("第 5 个人年龄是:" + age);
}
}
3.4 结果
第 5 个人年龄是:18
4. 实例 29
4.1 题目
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
4.2 思路
对数进行分解,然后再根据各位结果进行判断
4.3 代码
import java.util.Scanner;
/**
* @ClassName : TwentyNine
* @Author : cunyu
* @Date : 2020/6/23 22:37
* @Version : 1.0
* @Description : 实例 29
**/
public class TwentyNine {
public static void main(String[] args) throws Exception {
int a, b, c, d, e;
Scanner input = new Scanner(System.in);
System.out.println("输入不多于 5 位的正整数");
int num = input.nextInt();
// 分解出个十百千万位
a = num / 10000;
b = num % 10000 / 1000;
c = num % 1000 / 100;
d = num % 100 / 10;
e = num % 10;
if (a != 0) {
System.out.format("5 位数,逆序 %d%d%d%d%dn", e, d, c, b, a);
} else if (b != 0) {
System.out.format("4 位数,逆序 %d%d%d%dn", e, d, c, b);
} else if (c != 0) {
System.out.format("3 位数,逆序 %d%d%dn", e, d, c);
} else if (d != 0) {
System.out.format("2 位数,逆序 %d%d%n", e, d);
} else {
System.out.format("1 位数,逆序 %d%n", e);
}
}
}
4.4 结果
输入不多于 5 位的正整数
56324
5 位数,逆序 42365
5. 实例 30
5.1 题目
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
5.2 思路
类似于实例 29,将一个数进行分解出各位
5.3 代码
import java.util.Scanner;
/**
* @ClassName : Thirty
* @Author : cunyu
* @Date : 2020/6/23 22:47
* @Version : 1.0
* @Description : 实例 30
**/
public class Thirty {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.println("输入一个 5 位数");
int num = input.nextInt();
// 分解出个十百千万位
int a, b, c, d, e;
a = num / 10000;
b = num % 10000 / 1000;
c = num % 1000 / 100;
d = num % 100 / 10;
e = num % 10;
if (a == e && b == d) {
System.out.println("是回文数");
} else {
System.out.println("不是回文数");
}
}
}
5.4 结果
输入一个 5 位数
12321
是回文数