😸个人主页👉:神兽汤姆猫
📖系列专栏:开发语言环境配置 、 Java学习 、Java面试 、Markdown等
🔔感言💭:学习上的每一次进步,均来自于平时的努力与坚持。
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。
兔子问题
问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
问题分析:由上可知,兔子的规律为数列1,1,2,3,5,8,13,21....
答:
public class Demo{
public static void main(String args[]){
int i=0;
for(i=1;i<=20;i++)
System.out.println(f(i));
}
public static int f(int x)
{
if(x==1 || x==2)
return 1;
else
return f(x-1)+f(x-2);
}
}
水仙花数
什么是“水仙花数”?
-
水仙花数是一个三位数
111 222 333 422 378 789 999
-
水仙花的个位、十位、百位的数字立法和等于原数
123: 13+23+33= 1+8+27 =36 ≠ 123 ,故不是水仙花数
371: 33+73+13= 27 + 343 + 1= 371 = 371 ,故是水仙花数
问题:输出所有100-999的水仙花数,并每个数分解出个位,十位,百位
问题解析:
-
因为每一个三位数都有可能是水仙花数,所有需要使用循环获取所有的三位数,100到999结束
for (int i = 100; i <= 999; i++){...}
-
又因为不是每一个三位数都是水仙花数,所有需要判定,满足条件的数字我们才能进行输出
if (执行的限制条件) {...}
-
判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等。
if ( ? + ? + ? == 原数) { 输出原数 }
-
在计算之前获取三位数只能每个位上的值
public static void main(String[] args) {
for (int i = 100; i <= 999; i++){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if ((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i ){
System.out.println(i);
}
}
}
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。