斐波那契数列
一、问题描述。
题目
求斐波那契数列的40个数,并输出
要求:用for循环来遍历所有可能的选项
二、设计思路。
fibonacci数列可以通过多种方式进行输出,其通项公式为 F(n)=F(n-1)+F(n-2)
基本的for循环、数组再到递归,都可以实现。
题目要求使用for循环,求前40项
第一项和第二项都是1,我们可以用a,b分别代表前两项,f代表第三项,用窗的方式一步一步向后移动。
第一步:a=1,b=1
第二步:f=a+b
第三步:让a=b ,b=f,方便下一次计算
三、代码实现。
public class Test{
public static int fib(int n){
if(n == 1 || n == 2){
return 1;
}else{
int a = 1;
int b = 1;
int s = 0;
for(int i = 2;i<n;i++){
s = a + b;
a = b;
b = s;
}
return s;
}
}
public static void main (String[] args){
int result = fib(5);
System.out.println(result);
}
}
迭代算法
#include <stdio.h>
int fib(int n)
{
int a = 1;
int b = 1;
int c = 0;
while (n >= 3)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = fib(n);
printf("%d\n", ret);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通