当前位置 : 主页 > 编程语言 > java >

java经典算法-day3

来源:互联网 收集:自由互联 发布时间:2022-09-29
哈喽,各位小伙伴们好,我是喵手。 一、前言 正值金九银十好时节,又到了刷题月。xdm,有空的欢迎一起呀。无论你是挤公交还是坐地铁时间,随时随地皆可刷...你可以不用实操,你


哈喽,各位小伙伴们好,我是喵手。

一、前言

       正值金九银十好时节,又到了刷题月。xdm,有空的欢迎一起呀。无论你是挤公交还是坐地铁时间,随时随地皆可刷...你可以不用实操,你只需要看题思考,完后有空coding就好呀。接下来我要开启我的刷题之旅啦,喜欢的小伙伴欢迎点赞关注哦。

二、题目描述:

题目1:

    判断101-200之间有多少个素数,并输出所有素数。

题目2:

    打印出100-400之间所有的水仙花数 ,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。

三、思路分析:

题1、 判断101-200之间有多少个素数,并输出所有素数。

       这题的话,与上一题相比,其实就简单些了,你只需要知道什么是素数就能解题了。

素数:素数即是质数,要求满足在大于1的自然数中,除了1和它本身以外不再有其他因数。

所以很简单吧,因为前几期有讲解过求质数的,对吧,所以直接直奔主题吧。

题2、打印出100-400之间所有的水仙花数

      这一题与第二题差不多,都是求某种数,重点就是要知道水仙花数的符合规则,只要知道这个要求,算法实现就简单了。

水仙花数:是指一个三位数,其各位数字立方和等于该数本身。例如:153就是一个水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。

所以,最暴力的解决思路就是,分别取三个数字进行立方再相加,看看是否会等于原值本身。

四、算法实现:

题1AC代码:

1、定义一个判断是否为质数的方法

/**
* 判断是否是质数
*/
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;
}

2、写一个循环结构,从101-200的范围。

/**
* 101-200范围内
*/
public static String printZS() {
//用于统计质数
String zs = "";
//循环101-200
for (int i = 101; i <= 200; i++) {
//true表示是质数
if (isZS(i)) {
zs += "," + i;
continue;
}
}
return zs;
}

题2AC代码:

1、先实现一个判断是否为水仙花数的方法。

/**
* 判断是否是水仙花数
*/
public static boolean isSXHS(int num) {

//取个位数
int x = num % 100 % 10;
//取十位数
int y = num / 10 % 10;
//取百位数
int z = num / 100;
//进行判断
if (num == (lf(x) + lf(y) + lf(z))) {
System.out.println(num + "=" + z + "的三次方+" + y + "的三次方+" + x + "的三次方");
return true;
}
return false;
}

/**
* 手动实现一个求立方的方法
*/
public static int lf(int num) {
return num * num * num;
}

2、控制循环范围,依次进行数字判断。

/**
* 100-400范围内
*/
public static String printSXHS() {

//用于统计水仙花数
String sxhs = "";
//循环100-400
for (int i = 100; i <= 400; i++) {
//true表示是水仙花数
if (isSXHS(i)) {
sxhs += "," + i;
continue;
}
}
return sxhs;
}

五、总结:

       综上,这两道题稍微还是偏向数学题,运用数学思维进行coding即可,基本思路我再上方已经进行了详细介绍。

       如果你有更好的解题思路或者想法,欢迎评论区留言告诉我哦,喵手感激不尽。

六、文末:

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

---------------------------------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

---------------------------------------------------------------------


上一篇:JavaSE 一些技巧 03——Stream流常用API
下一篇:没有了
网友评论