编程合集: https://www.cnblogs.com/jssj/p/12002760.html

Java总结:https://www.cnblogs.com/jssj/p/11146205.html

【程序21】
题目:求1+2!+3!+…+20!的和

【程序22】
题目:利用递归方法求5!。

/**
* 【程序21】
* 题目:求1+2!+3!+…+20!的和
* 【程序22】
* 题目:利用递归方法求5!。
*/
public class Subject21And22 { public static void main(String[] args) {
int sum = factorialSum(20);
System.out.println("1+2!+3!+…+20!之和:"+sum);
} /**
* 阶乘求和
* @param num
* @return
*/
private static int factorialSum(int num) {
int sum = 0;
for (int j = 1; j <= num; j++) {
sum = sum+factorial(j);
}
return sum;
} /**
* 计算num的阶乘!
* @param num
* @return
*/
public static int factorial(int num){
if(num == 1){
return 1;
}else{
return num*factorial(num-1);
}
}
}

运行结果:

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

/**
* 【程序23】
* 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
*/
public class Subject23 {
public static void main(String[] args) {
int ageNum = getAge(5);
System.out.println("第五个人的年龄:"+ageNum);
} /**
* 获取年龄
* @param p0
* @return
*/
private static int getAge(int p0) {
if(p0 == 1){
return 10;
}else{
return getAge(p0-1)+2;
}
}
}

运行结果:

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

/**
* 【程序24】
* 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
*/
public class Subject24 { public static void main(String[] args) {
System.out.println("请输入需要分析的正整数:");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
analysisInt(num);
} /**
* 分析正整数
* @param num
*/
private static void analysisInt(int num) {
String tmpStr = String.valueOf(num);
char[] arrStr =tmpStr.toCharArray();
System.out.println("该正整数是"+arrStr.length+"位数。");
System.out.println("倒序打印为:");
for (int i = arrStr.length-1; i >= 0; i--) {
System.out.print(arrStr[i]+" ");
}
}
}

运行结果:

【程序25】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

import java.util.ArrayList;
import java.util.List; /**
* 【程序25】
* 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
*/
public class Subject25 { private static List<Integer> list = new ArrayList<>(); public static void main(String[] args) {
int num = 12321;
palindromeNumber(num);
if(list.get(0) == list.get(4) && list.get(1) == list.get(3)){
System.out.println("数字("+num+")是回文数");
}else{
System.out.println("数字("+num+")不是回文数");
} /***第二种方式**/
char[] arr = (num+"").toCharArray();
if(arr[0]==arr[4] && arr[1]==arr[3]){
System.out.println("数字("+num+")是回文数");
}else{
System.out.println("数字("+num+")不是回文数");
}
} /**
* 判断num是否是回文数
* @param num
*/
private static void palindromeNumber(int num) {
int lenght = (num+"").length()-1;
int numTmp = 0;
if(num < 10){
numTmp =num;
}else{
numTmp = num/(int)Math.pow(10,lenght);
int tmp =num - numTmp*(int)Math.pow(10,lenght);
palindromeNumber(tmp);
}
list.add(numTmp);
}
}

运行结果:

【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

import java.util.Scanner;

/**
* 【程序26】
* 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
*/
public class Subject26 {
public static void main(String[] args) {
System.out.println("请输入你现在心里想的哪个星期几(只需要前两个字母即可):");
Scanner scanner = new Scanner(System.in);
String scannerStr= scanner.next();
//判断输入的星期几
weekDay(scannerStr);
} /**
* 判断输入的星期的星期几
* @param scannerStr
*/
private static void weekDay(String scannerStr) {
char[] scannerArr = scannerStr.toCharArray();
switch (scannerArr[0]){
case 'M': System.out.println("您输入的星期一"); break;
case 'T':
switch (scannerArr[1]){
case 'U': System.out.println("您输入的星期二"); break;
case 'H': System.out.println("您输入的星期四"); break;
default:
System.out.println("您输入的不是星期,请重新输入:");
Scanner scanner = new Scanner(System.in);
scannerStr= scanner.next();
//判断输入的星期几
weekDay(scannerStr);
} break; case 'W': System.out.println("您输入的星期三"); break;
case 'F': System.out.println("您输入的星期五"); break;
case 'S':
switch (scannerArr[1]){
case 'A': System.out.println("您输入的星期六"); break;
case 'U': System.out.println("您输入的星期天"); break;
default:
System.out.println("您输入的不是星期,请重新输入:");
Scanner scanner = new Scanner(System.in);
scannerStr= scanner.next();
//判断输入的星期几
weekDay(scannerStr);
}break;
default:
System.out.println("您输入的不是星期,请重新输入:");
Scanner scanner = new Scanner(System.in);
scannerStr= scanner.next();
//判断输入的星期几
weekDay(scannerStr);
}
}
}

运行结果:

【程序27】
题目:对10个数进行排序

import java.util.Scanner;

/**
* 【程序27】
* 题目:对10个数进行排序
*/
public class Subject27 { public static void main(String[] args) {
System.out.println("请输入10个整数:");
Scanner scanner = new Scanner(System.in); int[] arr = new int[10];
for (int i = 0; i <10 ; i++) {
System.out.println("请输入第"+(i+1)+"个数:");
int num = scanner.nextInt();
arr[i] = num;
} sortInt(arr);
} /**
* 对数组arr进行排序
* @param arr
*/
private static void sortInt(int[] arr) {
int tmp = 0;
for(int i =0 ;i<arr.length;i++){
for (int j = i+1; j <arr.length ; j++) {
if(arr[i] > arr[j]){
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
} System.out.println("从小到大排序为:");
for (int i = 0; i <arr.length ; i++) {
System.out.print(arr[i]+" ");
}
}
}

运行结果:

【程序28】
题目:求一个3*3矩阵对角线元素之和

import java.util.Random;

/**
* 【程序28】
* 题目:求一个3*3矩阵对角线元素之和
*/
public class Subject28 { public static void main(String[] args) {
Random random = new Random();
int[][] arr = new int[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
arr[i][j] = random.nextInt(10);
}
} seekDiagonalSum(arr);
} /**
* 计算矩阵对角线之后
* @param arr
*/
private static void seekDiagonalSum(int[][] arr) {
int slash = 0;
int backSlash = 0; for (int i = 0; i < arr.length; i++) {
slash = slash + arr[i][i];
} System.out.println("随机生成的3*3的矩阵为:");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length ; j++) {
System.out.print(arr[i][j] + " ");
if(i+j == arr.length-1){
backSlash += arr[i][j];
}
}
System.out.println("");
}
System.out.println("正向对角线之和:"+slash);
System.out.println("反向对角线之和:"+backSlash);
}
}

运行结果:

【程序29】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

import java.util.Scanner;

/**
* 【程序29】
* 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
*/
public class Subject29 {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,0};
System.out.println("请输入一个1到8之间的数:");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt(); for (int i = 0; i < arr.length-2 ; i++) {
if(num >= arr[i] && num <= arr[i+1] ){
for (int j = arr.length-1; j > i+1 ; j--) {
arr[j] = arr[j-1];
}
arr[i+1] = num;
break;
}
}
System.out.print("插入数字("+num+")之后的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}

运行结果:

【程序30】
题目:将一个数组逆序输出。

/**
* 【程序30】题目:将一个数组逆序输出。
*/
public class Subject30 {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9};
System.out.println("顺序打印:");
printArray(arr);
reverseOrder(arr);
} /**
* 将arr数组逆序处理
* @param arr
*/
private static void reverseOrder(int[] arr) {
int tmp = 0;
for (int i = 0; i < arr.length/2 ; i++) {
tmp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = tmp;
} System.out.println("逆序打印:");
printArray(arr);
} /**
* 打印数组
* @param arr
*/
private static void printArray(int[] arr) {
for (int i = 0; i < arr.length ; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}

运行结果:

参考:https://blog.csdn.net/zzzzzzzhu/article/details/82355001

《Java练习题》习题集三的更多相关文章

  1. 《Java练习题》Java编程题合集(全)

    前言:不仅仅要实现,更要提升性能,精益求精,用尽量少的时间复杂度和空间复杂度解决问题. 初学者: <Java练习题>习题集一   https://www.cnblogs.com/jssj/ ...

  2. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  3. 201671010140. 2016-2017-2 《Java程序设计》java学习第三周

    java学习第三周       不知不觉,学习java已经是第三周了,不同于初见时的无措,慌张,在接触一段时日后,渐渐熟悉了一些,了解到了它的便利之处,也体会到了它的一些难点,本周主攻第四章,< ...

  4. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  5. 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题

    调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...

  6. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  7. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

  8. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

  9. Java多线程的三种实现方式

    java多线程的三种实现方式 一.继承Thread类 二.实现Runnable接口 三.使用ExecutorService, Callable, Future 无论是通过继承Thread类还是实现Ru ...

  10. OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态

    主键生成策略 sequence 数据库端 native 数据库端 uuid  程序端 自动赋值 生成的是一个32位的16进制数  实体类需把ID改成String 类型 assigned  程序端 需手 ...

随机推荐

  1. Vue packages version mismatch版本问题的解决

    今天下载了一个vue项目,npm run dev 时发现报错,错误信息入下: error in .src/components/mobile/SeniorDetail.vue Module build ...

  2. 2-SAT习题讲解

    2-SAT习题讲解 讲在前面:下述例题不是按照难度顺序的,而且基本就只会讲解建图的过程.下面讲解中$A'$为$A$的反向状态. 一.bzoj习题 例一:$bzoj2199 奶牛议会$ 首先我们考虑本题 ...

  3. 源码包的安装、rsync同步、inotify监测

    一.源码包的安装 1.源码包的作用:yum 使用的是rpm包,rpm包安装的不能指定安装位置 源码包可以按需选择/定制,及时修复bug ,适用于各种平台 2.大致过程:源码包——>make gc ...

  4. 理解Spark SQL(三)—— Spark SQL程序举例

    上一篇说到,在Spark 2.x当中,实际上SQLContext和HiveContext是过时的,相反是采用SparkSession对象的sql函数来操作SQL语句的.使用这个函数执行SQL语句前需要 ...

  5. Github远程库与Git本地库连接

    Github远程库与Git本地库连接 以下有任何[]符号只是将内容扩起,输入命令不需要将[]加入 创建SSH Key 用户主目录有.ssh->id_rsa和id_rae.pub->直接跳过 ...

  6. HTML 空元素(转)

    HTML 空元素 在 HTML 中,通常在一个空元素上使用一个闭标签是无效的.例如,<input type="text"> </input> 的闭标签是无效 ...

  7. 全网最通俗易懂的Kafka入门!

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在这篇之前已经写过两篇基础文章了,强烈建议先去阅读: ...

  8. 【RN - 基础】之Text使用简介

    基本用法 Text组件是React Native中的一个重要组件,相当于iOS中的UILabel和Android中的TextView.Text组件用来存放文本数据.下面是一个简单的例子: import ...

  9. 部署 kube-controller-manager 高可用集群

    目录 前言 创建kube-controller-manager证书和私钥 生成证书和私钥 将生成的证书和私钥分发到所有master节点 创建和分发kubeconfig文件 分发kubeconfig到所 ...

  10. bs4-爬取小说

    bs4 bs4有两种运行方式一种是处理本地资源,一种是处理网络资源 本地 from bs4 import BeautifulSoup if __name__ == '__main__': fr = o ...