Java
解决你平时遇到的Java题目
小只.
一名在校的程序猿呀
展开
-
Java两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ==你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。9 ,返回 [0, 1]。原创 2023-08-25 13:16:24 · 96 阅读 · 0 评论 -
Java求只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。a ^ b ^ a = a ^ a ^ b = b(满足交换律)^ :二进制数字异或,相同为0,不同为1。输入: [4,1,2,1,2]这道题是一道力扣上面的题目。输入: [2,2,1]原创 2022-11-03 21:09:58 · 352 阅读 · 0 评论 -
Java求多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入: [3,2,3]原创 2022-11-03 20:46:46 · 212 阅读 · 0 评论 -
Java存在连续三个奇数的数组
给你一个整数数组 array,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true;否则,返回 false。输入:array = [1,2,34,3,4,5,7,23,12]输出:true。解释:存在连续三个元素都是奇数的情况,即 [5,7,23]。输入:array = [2,6,4,1] 输出:false。解释:不存在连续三个元素都是奇数的情况。原创 2022-11-03 19:47:37 · 280 阅读 · 0 评论 -
Java求奇数位于偶数之前详解
两个while循环的判断条件不能单纯的写array[i]%2!=0(array[j]%2==0),要考虑到极端情况,就是当数组都是奇数(偶数)时。调整后可能是:[1, 5, 3, 4, 2, 6]或者为[1, 3, 5, 6, 4, 2]当数组int[] array = {1,3,5,7,9}时。当数组int[] array = {1,3,5,7,9}时。当数组int[] array = {2,4,6,8}时。当数组int[] array = {2,4,6,8}时。如数组:[1,2,3,4,5,6]原创 2022-10-26 20:27:46 · 353 阅读 · 0 评论 -
Java求自幂数
七位自幂数:北斗七星数:1741725,4210818,9800817,9926315。八位自幂数:八仙数:24678050,24678051,88593477。一位自幂数:独身数: 1,2,3,4,5,6,7,8,9。五位自幂数:五角星数:54748,92727,93084。三位自幂数:水仙花数:153,370,371,407。四位自幂数:四叶玫瑰数:1634,8208,9474。六位自幂数:六合数:548834。九位自幂数:九九重阳数。十位自幂数:十全十美数。原创 2022-10-24 22:31:51 · 1353 阅读 · 0 评论 -
Java冒泡排序详解
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。其实冒泡排序性能较低,Java 中内置了更高效的排序算法,就是Arrays.sort。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。3.针对所有的元素重复以上的步骤,除了最后一个。原创 2022-10-22 11:15:27 · 659 阅读 · 0 评论 -
Java数组逆置详解
我们首先找到起始下标和末尾下标,定义一个循环条件是起始下标小于末尾下标,当起始下标等于末尾下标时,就不用再进行转换。循环内部就将两元素调换。给定一个整型数组(也可以是其他类型),将数组中的元素逆置输出。原创 2022-10-20 17:57:23 · 1728 阅读 · 0 评论 -
Java二分查找详解
给定一个数组,首先判断是否有序,如果为无序,将数组变为有序。然后输入目标数字,返回该数字在数组中的的下标。二分查找只适用于有序数组,如果是无序数组,下标mid对应元素之前的下标是正确的,之后元素的下标无法找到。原创 2022-10-19 09:27:03 · 75 阅读 · 0 评论 -
Java汉诺塔问题详解
相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。(1)以C杆为中介,从A杆将1至n-1号盘移至B杆;(3)以A杆为中介,从B杆将1至n-1号盘移至C杆。(2)将A杆中剩下的第n号盘移至C杆;原创 2022-10-13 17:11:00 · 1067 阅读 · 0 评论 -
Java求一个整数返回数字之和
只不过这个题目要求有返回值,改变返回值类型和一些代码即可。写一个递归方法,输入一个非负整数,返回组成它的数字之和。题目思路基本相同,感兴趣可以去了解一下。原创 2022-10-12 18:05:39 · 439 阅读 · 0 评论 -
Java按顺序打印数字的每一位详解
先执行①打印1,把①的结果返回给②,然后执行③打印2。然后把打印好的1和2返回给④,再执行⑤打印3,最后把打印好的1,2和3返回给⑥,最后执行⑦,这样子就结束了整个递归的过程。输入一个数字,按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) ,用递归实现。原创 2022-10-12 17:31:44 · 1692 阅读 · 0 评论 -
Java求斐波那契数列第n项详解
求斐波那契数列的第n项,用迭代(循环)实现。原创 2022-10-12 14:23:47 · 2185 阅读 · 2 评论 -
Java求一个整数的二进制序列详解
要想得到一个整数中的每一个二进制数字,只有让它每个二进制数字都按位与(&)上 1。获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。原创 2022-10-11 23:42:27 · 897 阅读 · 0 评论 -
Java打印X形图案详解
多组输入一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。那就直接上图(图中 i 和 j 的位置应该反了)正斜线行和列相同,反斜线行和列的和等于输入的。针对每行输入,输出用“*”组成的X形图案。原创 2022-10-11 13:55:23 · 718 阅读 · 0 评论 -
Java求出一个数字二进制中1的个数详解
3.中等,能判断正数和负数,效率比基础高(因为右移相当于除2,当n/2==0时,就没必要再去判断前面多余的0)2.基础改编,能判断正数和负数(因为是无符号右移,不管正负数,最左侧均为加0),但效率还是不高。只能判断正数,效率不高(因为要判断太多0,沉冗计算)如果两个二进制位都是 1, 则结果为 1, 否则结果为。4.高等,能判断正数和负数,并且效率非常高。二进制最右侧位不要了, 最左侧补符号位(二进制最右侧位不要了, 最左侧无论。一共有四种形式供大家参考。...原创 2022-08-12 14:20:50 · 2213 阅读 · 0 评论 -
Java求最小公倍数
所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。两种格式都是在求最大公约数的代码上增加了两行代码而已,并没有我们想象的那么复杂。由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即 a×b = 最大公约数×最小公倍数。从键盘输入两个数字,求他们的最小公倍数。只要懂得原理,稍加运用就能解决。...原创 2022-08-13 08:00:00 · 7507 阅读 · 2 评论 -
Java求出最大公约数
题目要求 从键盘输入两个数字,求他们的最大公约数所用方法:辗转相除法两种格式都没必要去刻意比较两个数字的大小再计算。如果a原创 2022-08-11 22:52:03 · 1336 阅读 · 3 评论 -
Java猜数字游戏
题目要求随机生成一个1-100之间的数据(也可以自己设置区间),提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏。分析:① 随机生成一个1-100之间的数据② 使用死循环让用户不断提示用户猜测,猜大提示过大,猜小提示过小,猜中结束游戏。需要掌握的知识1.如何定义死循环2.Scanner键盘输入技术3.如何定义一个随机数补充知识Math.random()是返回 [0,1) 之间的随机浮点数随机数有两种定义方法:1.导入包来定义2.直接利用公式来定义个人倾原创 2022-05-10 13:14:32 · 3293 阅读 · 0 评论 -
Java求出1到100的所有整数中出现多少个数字9
实现代码//法1 for循环public class Main { public static void main(String[] args) { int count = 0;//记录9出现的次数 for (int i = 1; i <=100 ; i++) { if(i%10==9){//计算90以内的数,包括99 count++; } if(i/10原创 2022-05-09 16:29:30 · 1234 阅读 · 0 评论 -
Java输出n*n的乘法口诀表
题目要求输出n*n的乘法口诀表,n由用户输入实现代码import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int i , j; System.out.print("请输入数字:"); int n = s.nextInt();原创 2022-05-07 14:46:48 · 1205 阅读 · 1 评论 -
Java判断一个数字是否是素数
从键盘输入一个数字,判断它是否为素数原创 2022-05-06 14:26:55 · 18013 阅读 · 0 评论 -
Java打印1~100之间所有的素数
题目要求判断一个数是否为素数(质数):除了1和他本身不能被其他数整除实验思路两种方法1.嵌套循环,两个for循环2.do-while循环实现代码//法1public class Main { public static void main(String[] args) { int i, j; for(i=1; i<=100; i++){ for(j=2; j<i; j++){//判断除了1和本身能否被其他原创 2022-05-06 12:28:38 · 3611 阅读 · 0 评论 -
Java求n的阶乘
题目要求从键盘输入一个数字n,求出n的阶乘实现代码import java.util.Scanner;public class Main { public static int factorial(int x){//factorial:阶乘 int product = 1;//乘积 for (int i = 1; i <= x ; i++) { product = product * i; }原创 2022-05-05 12:24:37 · 6737 阅读 · 5 评论 -
Java求阶乘和
1.定义一个方法,方法里面使用一个循环,在调用时再使用一个循环反复调用。求 1~n 数字的阶乘和,n为键盘输入的数字。2.定义一个方法,方法里面使用嵌套循环。1.Scanner键盘输入技术。2.方法的定义和调用。...原创 2022-05-05 12:10:11 · 13564 阅读 · 0 评论 -
Java输出 1000 - 2000 之间所有的闰年
公历闰年判定遵循的规律为:四年一闰、百年不闰、400年再闰1.闰年能被4整除且不能100整除(即i%4==0 && i%100!=0)2.每400年一闰(i%400 ==0)易错提醒1.不能将三个条件合在一起,不然输出结果为02.也不能将这三个条件分开写或者随意组合,结果不为243实现代码public class Main { public static void main(String[] args) { int count =原创 2022-05-04 23:49:08 · 3489 阅读 · 2 评论 -
Java输出九九乘法表
需要掌握的知识:嵌套循环的使用实现代码public class Main { public static void main(String[] args) { int i; int j; for(i=1; i<=9; i++){//i在一行中是一个固定的数 for(j=1; j<=i; j++){//而j在一行中是不断变化的数 System.out.print(j+"*"+i+"原创 2022-05-04 16:18:49 · 363 阅读 · 0 评论 -
Java求出水仙花数
(Java)找出水仙花数题目要求水仙花数必须满足如下2个要求:1. 水仙花数是一个三位数2. 水仙花数的个位、十位、百位的数字立方和等于原数实现思路1.写出一个100~999的循环2.将个位,百位和十位求出并计算其平方和3.判断平方和是否与原数相同原创 2022-05-04 15:46:58 · 5415 阅读 · 0 评论