《Java练习题》习题集五
Posted 加速丨世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Java练习题》习题集五相关的知识,希望对你有一定的参考价值。
编程合集: https://www.cnblogs.com/jssj/p/12002760.html
Java总结:https://www.cnblogs.com/jssj/p/11146205.html
【程序41】
题目:求0,1,2,3,4,5,6,7所能组成的8位奇数个数。
/** * 【程序41】 * 题目:求0,1,2,3,4,5,6,7所能组成的8位奇数个数。 */ public class Subject41 { public static void main(String[] args) { int[] arr = new int[]{0,1,2,3,4,5,6,7}; compose(arr); } /** * 获取:0—7所能组成的奇数个数 */ private static void compose(int[] arr) { /**奇数特点,该数不能被2整数。故各位数是1,3,5,7,9**/ int oddCount = 0; for (int i = 0; i < arr.length; i++) { if(!isParity(arr[i])){ oddCount++; } } /***************各位已经确定,剩下的数可以组成整数的个数*******************/ int num = factorial(arr.length-1); /****************输出结果*********************/ System.out.println("以下数字:"); printArray(arr); System.out.println("可产生的奇数个数:"+oddCount*num); } /** * 判断num是奇数还是偶数 * @param num * @return */ private static boolean isParity(int num) { if(num%2 == 1){ return false; }else { return true; } } /** * 计算num的阶乘! * @param num * @return */ public static int factorial(int num){ if(num == 1){ return 1; }else{ return num*factorial(num-1); } } /** * 打印数组 * @param arr */ private static void printArray(int[] arr) { for (int i = 0; i < arr.length ; i++) { System.out.print(arr[i]+" "); } } }
运行结果:
【程序42】
题目:输入一个偶数,判断该偶数等于哪两个素数之和。
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 【程序42】 * 题目:输入一个偶数,判断该偶数等于哪两个素数之和。 */ public class Subject42 { public static void main(String[] args) { System.out.println("请输入大于等于2的偶数:"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); getTwoPrimeNum(num); } /** * 获取两个素数 * @param num */ private static void getTwoPrimeNum(int num) { List<Integer> primeNumberList = getPrimeNumber(2,num); for (int i = 0; i < primeNumberList.size(); i++) { for (int j = i; j < primeNumberList.size(); j++) { if(num == primeNumberList.get(i) + primeNumberList.get(j)){ System.out.println("该偶数为素数("+primeNumberList.get(i)+")和素数("+primeNumberList.get(j)+")的和"); } } } } /** * 判断a和b之间有多少个素数 * @param a * @param b */ public static List<Integer> getPrimeNumber(int a, int b){ List<Integer> primeNumberList = new ArrayList<>(); if(a >= b){ System.out.println("a不能大于等于b!"); } for(int i=a;i<=b;i++){ if(isPrimeNumber(i)){ primeNumberList.add(i); } } return primeNumberList; } /** * 判断num是否是一个素数 * @param i * @return */ private static boolean isPrimeNumber(int i) { boolean flag = true; for(int j=2;j <= i/2;j++){ if(i%j == 0){ flag = false; break; } } return flag; } }
运行结果:
【程序43】
题目:判断一个素数能被几个9整除
import java.util.Scanner; /** * 【程序43】 * 题目:判断一个素数能被几个9整除 (例如3能被9整除, 9除以3,等于3.) ,备注 :数学除是后面的数除以前面的数 * 尽管如此,该题还是感觉没有意义。 */ public class Subject43 { public static void main(String[] args) { System.out.println("请输入一个素数"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); dealNum(num); } private static void dealNum(int num) { if(!isPrimeNumber(num)){ System.out.println("您输入的数字不能素数!"); return ; } int divisorNum = 9; while(true){ if(divisorNum%num == 0 ){ System.out.println("您输入的素数能被"+divisorNum/9+"个9整除!"); break; } divisorNum = divisorNum + 9; } } /** * 判断num是否是一个素数 * @param i * @return */ private static boolean isPrimeNumber(int i) { boolean flag = true; for(int j=2;j <= i/2;j++){ if(i%j == 0){ flag = false; break; } } return flag; } }
运行结果:
【程序44】
题目:两个字符串连接程序
/** * 【程序44】 * 题目:两个字符串连接程序(该题为C代码题目。)使用C方式实现该程序 */ public class Subject44 { public static void main(String[] args) { String str1 = "张三"; String str2 = "李晓明"; splicingStr(str1,str2); } private static void splicingStr(String str1, String str2) { /*****java实现***************/ System.out.println("java实现:"+str1 + str2); /*****C实现,C言语字符串本身就是需要使用char[] 数组保存的,这里就不再从新写了***************/ char[] arrStr1 = str1.toCharArray(); char[] arrStr2 = str2.toCharArray(); char[] arrStrSum = new char[arrStr1.length + arrStr2.length]; for (int i = 0; i < arrStrSum.length; i++) { if(i < str1.length()){ arrStrSum[i] = arrStr1[i]; }else{ arrStrSum[i] = arrStr2[i-str1.length()]; } } System.out.print("C语言方式实现:"); printArray(arrStrSum); } /** * 打印数组 * @param arr */ private static void printArray(char[] arr) { for (int i = 0; i < arr.length ; i++) { System.out.print(arr[i]); } System.out.println(); } }
运行结果:
【程序45】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
import java.util.Scanner; /** * 【程序45】 * 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 */ public class Subject45 { public static void main(String[] args) { System.out.println("请输入一个(1—50)正整数:"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); printSymbol(num); } /** * 打印符号“*” * @param num */ private static void printSymbol(int num) { for (int i = 0; i < num ; i++) { System.out.print("*"); } } }
运行结果:
【程序46】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
import java.util.Scanner; /** * 【程序46】 * 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 */ public class Subject46 { public static void main(String[] args) { System.out.println("请输入一个4位整数:"); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); encryption(num); } /** * 数字加密 * @param num */ private static void encryption(int num) { char[] arr= (num+"").toCharArray(); for (int i = 0; i < arr.length/2; i++) { char tmp = arr[i]; arr[i] = arr[arr.length-i-1]; arr[arr.length-i-1] = tmp; } String cipherText = ""; for (int i = 0; i < arr.length; i++) { int tmp = (arr[i]-\'0\'+5)%10; cipherText = cipherText+tmp; } System.out.println("密文:"+cipherText); } }
运行结果:
【程序47】
题目:计算字符串中子串出现的次数
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 【程序47】 * 题目:计算字符串中子串出现的次数 */ public class Subject47 { public static void main(String[] args) { String str1 = "adsdfgfddghrcadncmbvxcxadakssadkfowp"; String str2 = "ad"; strLookCount(str1,str2); } /** * 子串出现次数 * @param str1 * @param str2 */ private static void strLookCount(String str1, String str2) { Pattern pattern = Pattern.compile(str2); Matcher m = pattern.matcher(str1); int count=0; while(m.find()){ count++; } System.out.println("子串出现次数: "+count); } }
运行结果:
参考:https://blog.csdn.net/zzzzzzzhu/article/details/82355001
以上是关于《Java练习题》习题集五的主要内容,如果未能解决你的问题,请参考以下文章