编程合集: 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. vue项目引入自定义.css的样式文件

    ES6的引入方式: .vue文件中 css文件引入 <template></template> <style scoped> @import "../as ...

  2. Entity Framework Core For MySql查询中使用DateTime.Now的问题

    背景 最近一直忙于手上澳洲线上项目的整体迁移和升级的准备工作,导致博客和公众号停更.本周终于艰难的完成了任务,借此机会,总结一下项目中遇到的一些问题. EF Core一直是我们团队中中小型项目常用的O ...

  3. 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码

    WiFi密码Python暴力破解   Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...

  4. SpringBoot 项目脚手架

    写在前面 之前也一直很少有写SpringBoot项目相关的文章,今天 准备整理一个我自己初始化SpringBoot项目时的一个脚手架,便于自己后面查阅.因为SpringBoot的约定大于配置,在整合各 ...

  5. 2019-10-9:渗透测试,基础学习,php文件上传,mysql基础

    header("Content-Type:text/html;charst="utf-8")设置头部信息,解决编码问题setcookie("loginStrin ...

  6. Netty学习篇⑥--ByteBuf源码分析

    什么是ByteBuf? ByteBuf在Netty中充当着非常重要的角色:它是在数据传输中负责装载字节数据的一个容器;其内部结构和数组类似,初始化默认长度为256,默认最大长度为Integer.MAX ...

  7. C++桌面计算机

    #include<iostream> #include<string> #include<map> #include<cctype> using nam ...

  8. HTTPS工作流程(入门)

    1.CA(为服务器做担保的第三方机构)将包含CA[公钥C]等信息的[证书C]发送给浏览器: 2.服务器将其[公钥S]和网站信息发送给CA: 3.CA用CA[私钥C]将这些信息加密得到了签名后的[服务器 ...

  9. PHP计算两组经纬度坐标之间的距离

    定义π define('PI',3.1415926535898); define('EARTH_RADIUS',6378.137); 计算两组经纬度坐标 之间的距离 /** * 计算两组经纬度坐标 之 ...

  10. 构建一个flink程序,从kafka读取然后写入MYSQL

    最近flink已经变得比较流行了,所以大家要了解flink并且使用flink.现在最流行的实时计算应该就是flink了,它具有了流计算和批处理功能.它可以处理有界数据和无界数据,也就是可以处理永远生产 ...