编程合集: 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. Redis 4.0鲜为人知的功能将加速您的应用程序

    来源:Redislabs 作者:Kyle Davis 翻译:Kevin (公众号:中间件小哥) Redis 4.0给Redis生态带来了一个惊人的功能:Modules(模块).Modules是Redi ...

  2. 【集合系列】- 深入浅出的分析 WeakHashMap

    一.摘要 在集合系列的第一章,咱们了解到,Map 的实现类有 HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.P ...

  3. 驰骋工作流系统-Java共工作流引擎配置定时任务

    关键词:工作流定时任务  流程引擎定时任务设置  工作流系统定时任务配置  开源工作流引擎 开源工作流系统 一.定时任务的作用 发送邮件,发送短信. 处理节点自动执行的任务.比如:一个节点的待办工作是 ...

  4. /etc/security/limits.conf 详解与配置

    目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/ 目录 二. ulim ...

  5. 题解 P2669 【金币】

    似乎我这个"蒟蒻"跟各位DALAO想的不太一样 首先,输入n,使用一层循环搞定 具体思路: 使用ans作为累加器,k记录发几枚金币,s负责不断赋值给累加器,sum当这些天数的金币发 ...

  6. C博客作业00—我的第一篇博客

    C博客作业00-我的第一篇博客 1. 你对网络专业或者计算机专业了解是怎样? 泛泛了解 - 原先只知道网络工程隶属于计算机工程学院,与院中其他专业一样,同样都需要学习大量的计算机基础知识,然后再分支学 ...

  7. python_Django

    1.Python用具 - pip    1.作用:        Python的软件包管理器,有一些python包被集成到了pip中.只要被集成到pip中的包,都允许通过pip直接安装    2.安装 ...

  8. 怎么解决js中如滑动到最底端一次操作触发多次

    定义一个布尔类型到标志,处理中将起设置为true ,处理完改完false,逻辑: data{ isInProcessing:false } //逻辑函数过程中: if(isInProcessing){ ...

  9. PHP fsockopen受服务器KeepAlive影响的解决

    在开发过程中常常遇到这样的需求,模拟浏览器访问某接口,并获取返回数据.我们比较常使用的方法是fsockopen与接口建立连接,然后发出指令,然后通过fgets接受返回值. 但是我们发现,通过PHP模拟 ...

  10. 关于flask-sqlalchemy的用法研究

    最近使用到flask的sqlalchemy,因为flask对sqlalchemy做了一些封装,加上自己本身对sqlalchemy也不熟悉,用法上走了很多弯路. 因为没时间去研究sqlalchemy的源 ...