![1ca8e20ae074d5c58734154eb1119f25.png](https://i-blog.csdnimg.cn/blog_migrate/b3102195097d17aa728c60d3880939cf.jpeg)
第二十题
打印出如下图案
(行数为奇数n的菱形)
就是下面这个样子哒~
*
***
*****
*******
*****
***
*
public class Lianxi20 { public static void main(String[] args) { int h=7,w=7; for(int i=0;i
第二十一题
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
代码:
public class lianxi20 { public static void main(String[] args) { double sum=0.0; int x=2,y=1,t; for(int i=1;i<=20;i++){ sum = sum+(double)x/y; t=y; y=x; x=y+t; } System.out.println(sum); }}
下面是第二种方式,用递归的方法:因为分子,分母的规律就是斐波那契数列呀~
代码:
public class lianxi23 { public static void main(String[] args) { double sum=0.0; for(int i=2;i<=21;i++){ sum = sum+(double)f(i+1)/f(i); System.out.println(f(i+1)+"/"+f(i)); } System.out.println(sum); } public static int f(int a){ if(a==1||a==2){ return 1; }else{ return f(a-1)+f(a-2); } }}
第二十二题
利用递归方法求n!(如n=5,则求出5!)。
代码:
public class lianxi22 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); System.out.println(Recursion(n)); } public static int Recursion(int n){ if(n==1||n==0){ return 1; }else{ return n*Recursion(n-1); } }}
第二十三题
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,
说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
代码:
public class lianxi23 { public static void main(String[] args) { int n = 5; System.out.println(f(5)); } public static int f(int n ){ if(n==1) { return 10; }else{ return 2+f(n-1); } }}
一看这架势,我妥妥的想到了用递归,写下了如上的代码~写完了还很得意~然后~我就发现其实这个题是可以用更简单的 for 循环来做的~
果然我是用递归用出惯性了,不知道伙伴们是不是也有这种时候,好不容易写完了代码,抬头一看,隔壁的小哥哥,不仅把题做出来了,而且逻辑还是超简单的~
代码:
public class lianxi25 { public static void main(String[] args) { int sum = 10; for(int i=1;i<5;i++){ sum=sum+2; } System.out.println(sum); }}
我走过最多的路,某过于出题老师的套路。写代码不仅要防bug,还要提防出题老师的险恶用心~我的心好累呀~
想学习Java的小伙伴注意啦!我整理了一套从最基础的Java入门级学习到Java框架内容,送给每一位想要学习Java的小伙伴,想要获取资料,【点击头像,右上角私信:学习】这里是小白聚集地,欢迎初学和进阶中的小伙伴~