java经典算法-day13
哈喽,各位小伙伴们好,我是喵手。
一、前言
正值金三银四好时节,又到了刷题月。xdm,有空的欢迎一起呀。无论你是挤公交还是坐地铁时间,随时随地皆可刷...你可以不用实操,你只需要看题思考,完后有空coding就好呀。接下来我要开启我的刷题之旅啦,喜欢的小伙伴欢迎点赞关注哦。
二、题目描述:
题目1:
求100之内的素数。
题目2:
对10个数进行排序。
三、思路分析:
题1分析:
这题也相对简单,你只要知道什么是素数即可。而且这题我也曾经讲过啦,不知道你们是否有印象。所以大家也可以回忆一下,看看能否写出来。
素数:素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
你就只需要判断每个数的因子是否存有只有1跟它本身即可,具体的话看我代码实现,你们就鞥明白了。
题2分析:
这题其实比较简单。
当你知道Arrays类中有一个sort()方法,那这题对你而言,就非常so easy;为什么这么说呢?请看,下方使用,其实你只需要传入一个int数组,然后调用.sort()方法即可。
Arrays.sort(int[] a)
这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。
虽然有点投机取巧,但是相对初学者而言,也是很有必要需要懂的。
具体实现请看下方:
四、算法实现:
题1AC代码:
/**
* 判断是否是质数
*/
public static boolean isZS(int num) {
//排除1不是质数
if (num == 1) {
return false;
}
for (int i = 2; i < num - 1; i++) {
//进行求余;只要余数为0,说明i被整除,该i就是num的一个因子。
if (num % i == 0) {
return false;
}
}
return true;
}
第二步:定义一个统计质数的方法, 然后将用户所输入的n值进行for循环依次判断,将每次循环的值进行方法调用,判断是否是质数,是质数就进行追加,否则就跳过。
/**
* 1-n范围内
*/
public static String printZS(int n) {
//用于统计质数
String zs = "";
//循环1-n
for (int i = 1; i <= n; i++) {
//true表示是质数
if (isZS(i)) {
zs += "," + i;
continue;
}
}
return zs;
}
题2AC代码:
/**
* 实现数组排序
*/
public static void sortNum(int[] nums) {
Arrays.sort(nums);
}
五、总结:
综上,第一题就没啥好说的啊,毕竟跟过我一起刷题的同学就知道,所以我这里就给大家写了一个判断是否为素数的函数,只需要对每个数都进行判断即可。第二道呢,思路就很多了,你可以用冒泡排序或者快排等,我这里就教了你们走了个捷径,直接用了arrays提供的排序,其实底层运用的就是快排法。
如果你有更好的解题思路或者想法,欢迎评论区留言告诉我哦,喵手感激不尽。
六、文末:
好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。
wished for you successed !!!
---------------------------------------------------------------------
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
---------------------------------------------------------------------
- 点赞
- 收藏
- 关注作者
评论(0)