(七)输出菱形、递归算法

温馨提示:文章干货,建议收藏后阅读!

来来来~少年,我看你骨骼惊奇,将来必定是万中无一的编程奇才,这里有一份《Java编程基本功》,我看咱俩有缘,只要关注了我的公众号,我就送给你了!如何~

大家都这么熟了,客套话就不说了。咱们直奔主题~

闲话少说,放码过来

第二十题

打印出如下图案

(行数为奇数n的菱形)

就是下面这个样子哒~

*

***

*****

*******

*****

***

*

publicclassLianxi20{

publicstaticvoidmain(String[] args){

inth=7,w=7;

for(inti=;i

for(intj=;j

System.out.print(" ");

}

for(intk=1;k

System.out.print("*");

}

System.out.println();

}

for(inti=1;i

for(intj=1;j

System.out.print(" ");

}

for(intk=1;k

System.out.print("*");

}

System.out.println();

}

}

}

第二十一题

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

代码:

下面是第二种方式,用递归的方法:因为分子,分母的规律就是斐波那契数列呀~

代码:

publicclasslianxi23{

publicstaticvoidmain(String[] args){

doublesum=0.0;

for(inti=2;i

sum = sum+(double)f(i+1)/f(i);

System.out.println(f(i+1)+"/"+f(i));

}

System.out.println(sum);

}

publicstaticintf(inta){

if(a==1||a==2){

return1;

}else{

returnf(a-1)+f(a-2);

}

}

}

第二十二题

利用递归方法求n!(如n=5,则求出5!)。

代码:

第二十三题

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,

说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

代码:

一看这架势,我妥妥的想到了用递归,写下了如上的代码~写完了还很得意~然后~我就发现其实这个题是可以用更简单的 for 循环来做的~

果然我是用递归用出惯性了,不知道伙伴们是不是也有这种时候,好不容易写完了代码,抬头一看,隔壁的小哥哥,不仅把题做出来了,而且逻辑还是超简单的~

代码:

我走过最多的路,某过于出题老师的套路。写代码不仅要防bug,还要提防出题老师的险恶用心~我的心好累呀~

我是萌新娜娜

立志做一个不翻车的老司机

学习Java的路上请多多指教

有任何问题都可以在文章留言,娜姐都看着的呢!

合作,投稿,转载,版权问题请联系 李娜:Lina_Java

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424A1UCZ100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券