第一种用循环写
#include<stdio.h>
int main(){
int a=1,b=1,n,c=1;
scanf("%d",&n);
if(n<1){printf("Invalid.");}
while(c<=n){
printf("%5d",a);
b=a+b;
a=b-a;
if(c%5==0||c==n)printf("\n");
c++; }
return 0;
}
第二种用数组的方法,就是先算出来,然后在决定从数组中选几个
#include<stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
int f[100]={1,1}; //定义数组前两个数字
if(n<1){
printf("Invalid.");
}
else{
for(i=2;i<100;i++){ //你想打印几个数字取决于你数组里面运算了几个数
f[i]=f[i-2]+f[i-1];
}
for(i=0;i<n;i++){
printf("%11d",f[i]);
if((i+1)%5==0||n==i+1){printf("\n");}
}
}
return 0;
}
第三种用函数的递归写,函数的递归运行效率底,不如第二种简单易懂
#include<iostream>
using namespace std;
int tran(int c)
{
return(c==1||c==2)?1:tran(c-1)+tran(c-2);
}
int main(){
int n,i;
cin>>n;
if(n<1){
cout<<"Invalid.";
}
else{
for(i=1;i<=n;i++){
printf("%5d",tran(i));
if(i%5==0||n==i){printf("\n");}
}
}
}
本文介绍了使用三种不同的编程方法来实现斐波那契数列:循环、数组和递归。每种方法都有其特点,适用于不同场景。循环方法简洁明了;数组方法适合需要大量计算的情况;而递归方法虽然效率较低但易于理解。
789

被折叠的 条评论
为什么被折叠?



