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

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

【程序31】
题目:取一个整数a从右端开始的4~7位。

import java.util.Scanner;

/**
* 【程序31】
* 题目:取一个整数a从右端开始的4~7位。
*/
public class Subject31 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入一个操作8位的整数");
String num = scanner.next();
intercept(num);
} /**
* 截取num
* @param num
*/
private static void intercept(String num) {
char[] arr = num.toCharArray();
int j=0;
System.out.print("截取结果为:");
for(int i = arr.length-1 ; i >= 0;i--){
j++;
if(j >= 4 && j<=7){
System.out.print(arr[i]+" ");
}
}
}
}

运行结果:

 

【程序32】
题目:打印出杨辉三角形(要求打印出10行如下图) ,完美杨辉三角。

import java.util.ArrayList;
import java.util.List; /**
* 【程序32】
* 题目:打印出杨辉三角形(要求打印出10行如下图)
*/
public class Subject32 { private static int num_1 = 10;
private static List<int[]> list = new ArrayList<>(); public static void main(String[] args) {
System.out.println("杨辉三角形打印如下:");
yangHuiTriangle(num_1);
int maxLength = (list.get(list.size()-1)[num_1/2]+"").length();
boolean flag = isParity(maxLength);
for (int i = 0 ; i < list.size(); i++) {
int[] arr = list.get(i);
printSpace(arr,maxLength);
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j]);
int tmp = (arr[j]+"").length();
if(flag){
for (int k = 0; k < maxLength+2 - tmp; k++) {
System.out.print(" ");
}
}else{
for (int k = 0; k < maxLength+1 - tmp; k++) {
System.out.print(" ");
}
} }
System.out.println();
}
} /**
* 判断maxLength是奇数还是偶数
* @param maxLength
* @return
*/
private static boolean isParity(int maxLength) {
if(maxLength%2 == 1){
return false;
}else {
return true;
}
} /**
* 获取杨辉三角数据
* @param num
* @return
*/
private static int[] yangHuiTriangle(int num) {
if(num == 1){
int[] arr = new int[]{1};
list.add(arr);
return arr;
}else{
int[] arrPro = yangHuiTriangle(num-1);
int[] arrAft = new int[num];
for (int i = 0; i < arrAft.length ; i++) {
if(i == 0){
arrAft[i] = 0+arrPro[i];
}else if( i== arrAft.length-1){
arrAft[i] = arrPro[i-1]+0;
}else{
arrAft[i] = arrPro[i-1] + arrPro[i];
}
}
list.add(arrAft);
return arrAft;
}
} /**
* 空格打印
* @param arr
*/
private static void printSpace(int[] arr,int maxLength) {
for (int i = 0; i < num_1 - arr.length ; i++) {
double loopNum = Math.ceil((maxLength+1)/2.0);
for (int j = 0; j < loopNum; j++) {
System.out.print(" ");
}
}
}
}

运行结果:

【程序33】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

/**
* 【程序33】
* 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
*/
public class Subject33 { public static void main(String[] args) {
int[] arr = new int[]{44,56,89,32,11,78,55,82,02,68,44,27};
printArray(arr);
deal(arr);
} private static void deal(int[] arr) {
int maxNum = arr[0]; //最大数
int minNum = arr[0]; //最小数
int maxPosition = 0; //最大数在数组的位置。
int minPosition = 0; //最小数在数组的位置。
for (int i = 1; i < arr.length; i++) {
if(arr[i] > maxNum){
maxNum = arr[i];
maxPosition = i;
}
if(arr[i] < minNum){
minNum = arr[i];
minPosition = i;
}
} /*********重组数组(最大的与第一个元素交换,最小的与最后一个元素)************/
int tmp = 0;
tmp = arr[0];
arr[0] = arr[maxPosition];
arr[maxPosition] = tmp; tmp = arr[arr.length-1];
arr[arr.length-1] = arr[minPosition];
arr[minPosition] = tmp; /*********打印数组***********/
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();
}
}

运行结果:

【程序34】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

/**
* 【程序34】
* 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
*/
public class Subject34 { public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
/**********************打印数组*************************/
printArray(arr);
int m = 6; //偏移量
deviation(arr,m);
} /**
* 数组arr偏移m后的结果
* @param arr
* @param m
*/
private static void deviation(int[] arr,int m) {
int[] newArr = new int[m];
int count = m-1;
/*******************将最后m为数保存到新数组中********************/
for (int i = arr.length-1; i >= arr.length-m ; i--) {
newArr[count--] = arr[i];
} /********************将数组中的数据往后移动m位***************************/
for (int i = arr.length-1; i >= m; i--) {
arr[i] = arr[i-m];
} /**********************数组前面的数据补充完整*************************/
for (int i = 0; i < newArr.length; i++) {
arr[i] = newArr[i];
} /**********************打印数组*************************/
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();
}
}

运行结果:

【程序35】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; /**
* 【程序35】
* 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
*/
public class Subject35 {
public static void main(String[] args) {
System.out.println("请输入人数:");
Scanner scanner = new Scanner(System.in);
int n= scanner.nextInt();
numberGame(n);
} /**
* 数字游戏
* @param n
*/
private static void numberGame(int n) {
List<Integer> list = new ArrayList<>();
/****************给50个人编号******************/
for (int i = 1; i <= n; i++) {
list.add(i);
}
endGameByNum(list,1);
} /**
* 获取最后留下的人
* @param list
* @param ident
*/
private static void endGameByNum(List<Integer> list,int ident) {
List<Integer> listTmp = new ArrayList<>(); if(list.size() >= 3 ) {
for (int i = 0; i < list.size(); i++) {
if ((i+ident)%3 != 0) {
listTmp.add(list.get(i));
}
}
endGameByNum(listTmp,list.size()%3+1);
}else{
for (int i = 0; i < list.size(); i++) {
System.out.println("最后留下的人为"+list.get(i)+"号选手!");
}
}
}
}

运行结果:

 

【程序36】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

import java.util.Scanner;

/**
* 【程序36】
* 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
*/
public class Subject36 { public static void main(String[] args) {
System.out.println("请输入一个字符串:");
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
stringLength(str);
} /**
* 输出字符串长度
* @param str
*/
private static void stringLength(String str) {
char[] arr = str.toCharArray();
System.out.println("字符串长度:"+ arr.length);
}
}

运行结果:

【程序37】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n

import java.util.Scanner;

/**
* 【程序37】
* 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n
*/
public class Subject37 { private static double sum = 0; //求和 private static String str = ""; //拼接字符串 public static void main(String[] args) {
System.out.println("请输入一个正整数:");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
specialDeal(num);
System.out.print(str.substring(0,str.length()-2)+"的和为:");
System.out.println(sum);
} /**
* 输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n
* @param num
*/
private static void specialDeal(int num) {
sum = sum+ 1.0/num;
if(num > 2){
specialDeal(num-2);
}
str = str+"1/"+num+" + ";
}
}

运行结果:

【程序38】
题目:字符串排序。

/**
* 【程序38】
* 题目:字符串排序。
*/
public class Subject38 {
public static void main(String[] args) {
String[] arrStr = new String[]{"asd","bbb","dddd","add","eddd","ccdd","caaa","adds","cvf","dass"};
System.out.print("初始数组:");
printStrinArray(arrStr);
stringOrder(arrStr);
} /**
* 字符串数组排序
* @param arrStr
*/
private static void stringOrder(String[] arrStr) {
for (int i = 0; i <arrStr.length ; i++) {
for (int j = i+1; j < arrStr.length; j++) {
String tmp = "";
if(arrStr[i].compareTo(arrStr[j]) > 0){
tmp = arrStr[i];
arrStr[i] = arrStr[j];
arrStr[j] = tmp;
}
}
}
System.out.print("排序后数组:");
printStrinArray(arrStr);
} /**
* 字符串数组打印
* @param arrStr
*/
private static void printStrinArray(String[] arrStr) {
for (int i = 0; i < arrStr.length; i++) {
System.out.print(arrStr[i]+" ");
}
System.out.println();
}
}

运行结果:

【程序39】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

/**
* 【程序39】
* 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
* 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
* 问海滩上原来最少有多少个桃子?
*/
public class Subject39 { private static int count = 0; //分桃次数
private static int tmp = 0; //桃子数量 public static void main(String[] args) {
averagePeachTot();
} /**
* 循环获取桃子总数
*/
private static void averagePeachTot() {
int frequency = 4;
while(true){
if(count == 6){
System.out.println(tmp);
break;
}
count =0;
averagePeach(frequency);
frequency+=4;
}
} /**
* 平分桃子
*/
private static void averagePeach(int num) {
count++;
if(num%4 == 0 && count<=5){
tmp = num + 1 + num/4;
averagePeach( tmp);
}
}
}

运行结果:

【程序40】
题目:809*??=800*??+9*??+1
其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果

/**
* 【程序40】
* 题目:809*??=800*??+9*??+1 改成 809*??=800*??+9*??
* 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果, 题目错误
*/
public class Subject40 {
public static void main(String[] args) {
mathematicsFormula();
} /**
* 数学公式
*/
private static void mathematicsFormula() {
boolean flag = false;
for (int i = 10; i < 100 ; i++) {
if( 8*i < 100 && 9*i >100 && 809*i == 800*i+9*i){
flag = true;
System.out.println("??=" + i);
System.out.println("809*?? = " + 809*i);
}
}
if(!flag){
System.out.println("为找到合适的数");
}
}
}

运行结果:

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

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

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

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

  2. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  3. JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)

    1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...

  4. JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例

    简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用) ...

  5. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  6. java面向对象中四种权限(private,protected,public,友好型)详解

    转自http://blog.csdn.net/a1237871112/article/details/50926975 及http://blog.csdn.net/blackmanren/articl ...

  7. Java多线程(四)java中的Sleep方法

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  8. java内部类及四种内部类的实现方式

     java内部类及四种内部类的实现方式 一.内部类定义:内部类分为: 成员内部类.静态嵌套类.方法内部类.匿名内部类. 二.为何要内部类?a.内部类提供了某种进入外围类的窗户.b.也是最吸引人的原因, ...

  9. Java 1.ExecutorService四种线程池的例子与说明

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  10. Java中的四种引用

    引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...

随机推荐

  1. MYSQLnavicat绿色版工具下载

    MYSql远程连接工具navicat工具:https://pan.baidu.com/s/1RU_8FCX7yCseAFRhn4voAQ

  2. Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务

    1. 背景 不知不觉笔者来到流媒体部门已经一年半多了,积攒了不少的流媒体知识,但平时工作也比较忙,很少进行总结性的梳理,最近准备花几个周末时间写一个流媒体系列的实践文章,也算是给自己做总结的同时帮助有 ...

  3. linux网络配置(iproute2)

    iproute2家族 ip命令:show  / manipulate routing,devices,policy routing and tunnels(显示/操纵路由.设备.策略路由和隧道) 语法 ...

  4. 请求https前缀的网站验证SSL证书的解决方案之一

    from requests.packages.urllib3.exceptions import InsecureRequestWarning # 禁用安全请求警告requests.packages. ...

  5. wincap linux部署

    1.4.1 linux下安装Winpcap a) 下载Winpcap的源码:https://www.winpcap.org/devel.htm b) 上传源码包“WpcapSrc_4_1_3.zip” ...

  6. 附012.Kubeadm部署高可用Kubernetes

    一 kubeadm介绍 1.1 概述 参考<附003.Kubeadm部署Kubernetes>. 1.2 kubeadm功能 参考<附003.Kubeadm部署Kubernetes& ...

  7. 运维常用 MySQL 命令

    目录 设置用户密码 方法一 方法二 丢失root密码找回 添加用户 设置用户密码 方法一 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass ...

  8. Java工作流引擎-中间件模式代码集成

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 前端代码集成步骤 ...

  9. STM32 GPIO口的配置和应用

    STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) ...

  10. 【原创】003 | 搭上基于SpringBoot事务思想实战专车

    前言 如果这是你第二次看到师长,说明你在觊觎我的美色! 点赞+关注再看,养成习惯 没别的意思,就是需要你的窥屏^_^ 专车介绍 该趟专车是开往基于Spring Boot事务思想实战的专车,在上一篇 搭 ...