黑马程序员-斐波那契数列第n项

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
第2题:求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55


这道题起初困扰过一段时间,想不明白这个数列的前两项怎么出现,后来想到可以直接将数列的前两项初始化出来(囧)……于是问题就迎刃而解了。


  思路:首先观察这个数列,我们可以得到一个规律从数列的第三项开始,每个元素都是前两个元素的值相加的和,其实这就是解决这道题的切入点。
得到步骤:
1.初始化两个int值a=1,b=1 这就是斐波那契数列的前两项
        2.第三项为2,是前两项的和     于是可以定义一个sum=a+b
          3.第四项为3,是1和2的和     可以将sum赋值给a,此时a=2,sum=a+b=3
        4.第五项为5,是2和3的和     那么b=a+b  再将b的值赋值给sum 打印出来的sum就是5
……
5.以上规律可以用循环来实现

下面是详细代码:


public class Test_02 {
//这是一种方法,每次打印数列中的两项数值
public static void main(String[] args) {
int a=1,b=1;
System.out.println(a);//数列第一项
System.out.println(b);//数列第二项
for (int n = 2; n < 30; ) {
//定义一个sum,并将a和b的和赋给sum
int sum=a+b;
//打印当前sum值
System.out.println(sum);
n++;//计数器加1
 
if (n==29) {//循环运行到某次时,此处的n一定会等于29,此时就可以结束循环了
break;
}
//再将sum赋值给a,方便计算下一个sum
a=sum;
//重新给b赋值,得到的是前两项的和
b=a+b;
//再将b赋值给sum
sum=b;
//打印当前sum值
System.out.println(sum);
n++;//计数器再加1
}
}

//这是另一种方法,每次打印数列的一项值,但大致思路和上一种方法是一样的
/**public static void main(String[] args) {
int a=1, b=1 ;
System.out.println(a);
System.out.println(b);
for(int n=3;n<30;n++){
System.out.println(a+b);
int c=a;
a=b;
b=c+b;
}
}*/
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值