其实这就是个典型的斐波拉契数列问题:
第 1 个月:1 对兔子
第 2 个月:1 对兔子
第 3 个月:2 对兔子
第 4 个月:3 对兔子
……
即从第 3 个月开始,当前月的兔子对数是当前月前两个月的兔子对数之和。
实现
import java.util.Scanner;
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@公众号 : 村雨遥
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/1 13:13
-
@project : Java 编程实例
-
@package : PACKAGE_NAME
-
@className : Example1
-
@description :
*/
public class Example1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = 0;
System.out.println(“输入月份”);
month = scanner.nextInt();
int former = 1;
int latter = 1;
for (int i = 1; i <= month; i++) {
// 第 1、2 个月的情况
if (i < 3) {
latter = 1;
} else {
int tmp = latter;
latter += former;
former = tmp;
}
System.out.format(“第 %d 个月的兔子对数:%d\n”, i, latter);
}
}
}
结果
题目
判断 100 - 200 之间的素数的个数并输出。
分析
判断一个数是否为素数,只要用这个数分别取除 2 ~ sqrt(这个数)
,一旦被整除,则表明这个数不是素数,否则就是素数。
实现
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@公众号 : 村雨遥
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/1 13:30
-
@project : Java 编程实例
-
@package : PACKAGE_NAME
-
@className : Example2
-
@description :
*/
public class Example2 {
public static void main(String[] args) {
// 素数个数
int count = 0;
System.out.println(“100 ~ 200 之间的素数:”);
for (int i = 100; i <= 200; i++) {
// 默认非素数
boolean isPrime = false;
for (int j = 2; j <= (int) Math.sqrt(i); j++) {
// 一旦能除尽,则说明不是素数,直接跳出循环
if (i % j == 0) {
isPrime = true;
break;
}
}
// 如果是素数,则素数个数 + 1,然后打印出该素数
if (isPrime == false) {
count++;
System.out.print(i + “\t”);
// 每行打印 5 个素数,
if (count % 5 == 0) {
System.out.println();
}
}
}
System.out.println(“\n素数总个数:” + count);
}
}
结果
题目
打印出所有“水仙花数”,所谓水仙花数,是指有一个三位数,其各个数字的立方和等于其本身,例如: 153 = 1 ∗ 1 ∗ 1 + 5 ∗ 5 ∗ 5 + 3 ∗ 3 ∗ 3 153=1*1*1+5*5*5+3*3*3 153=1∗1∗1+5∗5∗5+3∗3∗3,所以 153 是水仙花数。
分析
因为水仙花数是一个三位数,所以它的范围是 100 ~ 999,然后分别求出这个三位数的个位、十位、百位,最后判断他们各自立方的和是否等于该三位数即可。
实现
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@公众号 : 村雨遥
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/1 13:53
-
@project : Java 编程实例
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/d23f4f3eda076304ccd43bca2cf9f2ec.jpeg)
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
[外链图片转存中…(img-te2vPIDj-1712520642376)]
[外链图片转存中…(img-G7kuo8QE-1712520642376)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!