用C语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个数。

如题所述

public class FeiBoMethod {  

// 使用递归方法  

private static int getSum(int num) {  

if (num== 1 || num== 2)  

return 1;  

else  

return getSum(num- 1) + getFibo(num- 2);  

}  

public static void main(String[] args) {  

System.out.println("斐波那契数列的前13项为:");  

for (int i = 1; i <= 13; i++) {  

System.out.print(getSum(i) + "\t");  

if (i % 5 == 0)  

System.out.println();  

}  

}  

扩展资料:

使用数组的方式实现

publicclassFeiBoMethod{

//定义数组方法

publicstaticvoidmain(String[]args){

intarr[]=newint[13];

arr[0]=arr[1]=1;

for(inti=2;i<arr.length;i++){

arr[i]=arr[i-1]+arr[i-2];

System.out.println("斐波那契数列的前13项如下所示:");

for(inti=0;i<arr.length;i++){

if(i%5==0)

System.out.println();

System.out.print(arr[i]+"\t");

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-08-15

1、首先打开C语言软件,在主函数main中,声明定义一个长度为20个元素的数组,并且给第0个第1个元素赋值为1。

2、然后利用for循环来完成对前20项的和,如下图所示。

3、并将结果输出,执行程序,如下图所示。

4、执行程序,结果如下图所示,这样就完成了。

本回答被网友采纳
第2个回答  2011-06-19

#include "stdio.h"

#include "math.h"

main()

{

    float a[13];

    int n,i;

    float x,y;

    for (n=0;n<13;n++)

    {

        if (n<3)

        {

            x=1;y=1;

            for(i=0;i<=n;i++)

            {

                x=x*(1+sqrt(5))/2;

                y=y*(1-sqrt(5))/2;

            }

            a[n]=(1/sqrt(5))*(x-y);

        }

        else

            a[n]=a[n-1]+a[n-2];

    }

    for(n=0;n<13;n++)

    {

        printf("%6.0f",a[n]);

        if((n+1)%5==0)

            printf("\n");

    }

    getch(); /* win-tc*/

}

第3个回答  推荐于2017-11-24
相对于其他人的代码,我的代码绝对是执行速度最快的,没有之一。
#include <stdio.h>

int a[13];
int main()
{
a[0] = a[1] = 1;
for(int i=2;i<13;i++)
a[i] = a[i-1] + a[i-2];
for(int i=0;i<13;i++)
{
printf("%3d ", a[i]);
if((i+1)%5 == 0) printf("\n");
}
printf("\n");
return 0;
}本回答被提问者采纳
第4个回答  2011-06-19
这是典型的递归算法,
int fact(int n ){
if(n==1) return 1;
if(n==2) return 2;
return fact(n-1)+fact(n-2);
}
在main方法里打印就行了 每5个字符,打个换行,当然楼上用数组也能实现,不过这种题目就是为了解释迭代方法的,熟悉熟悉迭代是有好处的

用C语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个...
return getSum(num- 1) + getFibo(num- 2);} public static void main(String[] args) { System.out.println("斐波那契数列的前13项为:");for (int i = 1; i <= 13; i++) { System.out.print(getSum(i) + "\\t");if (i % 5 == 0)System.out.println();} } } ...

...编写程序,输出斐波那契序列1, 1, 2, 3, 5, 8, 13,…的前50项,要求...
另外需要注意,50项斐波那契数列,数字将会非常大。所以需要用到无符号64位整型变量unsigned __int64。include <stdio.h>int main(void) { int n; \/\/ 输入一个数字 N int i; \/\/ 第 i 个将要输出的斐波那契数 unsigned __int64 current; \/\/ 第 i 个斐波那契数的值 unsigned _...

...1 2 3 5 8 。。这前40个数字,按照每一行5个数字输出
include<stdio.h> void fibo(int n){ int i,count=2;double x1,x2,x; x1=1; x2=1;printf("%6.0f\\t%6.0f\\t",x1,x2);for(i=1;i<=(n-2);i++){ x=x1+x2;printf("%6.0f\\t",x);x1=x2;x2=x;count++;if(count%5==0)printf("\\n");} printf("\\n");} void...

求用C语言表达斐波那契数列
斐波那契数列,以其独特的黄金分割比例而闻名,数列的前两项为0和1,后续每一项是前两项的和,如0, 1, 1, 2, 3, 5, 8, 13等。在数学上,它的递归定义为:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (对于n >= 2且n为正整数)。这个数列在多个领域有着广泛的应用...

c语言---斐波那契数列
斐波那契数列,一个以递推方式定义的数列,其前两个数字分别为 0 和 1,随后每个数字是前两个数字之和。例如,数列如下:0、1、1、2、3、5、8、13、21、34……数学上,斐波那契数列由递推公式 F(0) = 0,F(1) = 1, F(n) = F(n - 1) + F(n - 2)(n ≥ 2,n ∈ N*)...

编写程序:斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34……
int fun(int m){ if(m ==1 ){ return 1;} else if(m == 2){ return 1;} else{ return fun(m - 1)+fun(m - 2);} } main(){ int i;int n;int result;printf("要输入前几项的结果?\\n");scanf("%d",&n);printf("结果是\\n");for(i=1;i<=n;i++){ result = ...

用C语言求斐波那契数列前500项
斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13 …,从第三项开始,每一项都等于前两项之和。用C语言求斐波那契数列的一种常见方法是使用递归函数,即定义一个函数fib(n),返回第n项的值,然后在函数体中调用fib(n-1)和fib(n-2)。这种方法虽然简单,但是效率很低,因为会重复计算...

...1,1,2,3,5,8,13……的前20项,每输出5项一换行,用C++
include<iostream>using namespace std;int f(int n){ if (n == 1 || n == 2) { return 1; } return f(n -1) + f(n-2);}int main(){ for (int i = 1; i <= 20; i++) { cout << f(i) ; if (i % 5 == 0 && i != 0) {...

求c#输出斐波那契数列前20项1、1、2、3、5、8。。每行输出5个
C#程序:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test_CSharp{ class Program { static void Main(string[] args) { int f1 = 1; int f2 = 1; int i; System.Console.Write(f1 + " " + f2 + " "); f...

请编程实现:求斐波那契数列的前15项,每行输出5个。 这是c语言啊!!用...
long fab_2 = 1;print ("%l\\t%l", fab_1, fab_2); \/\/输出前两项 int i = 3;for( ; i < 16; i ++ ) \/\/循环从第三项开始 { if( i \/ 5 == 0){ print( "\\n");} long fab_result = fab_1 + fab_2;print( "%l\\t", fab_result);fab_1 = fab_2;fab_...

相似回答