回 帖 发 新 帖 刷新版面

主题:用于产斐波那契数列的前10个数(1,1,2,3,5,8,13,...

这道题目怎么做,高手快帮帮我啊,急!!!!!!

回复列表 (共24个回复)

沙发

自己做吧!
不难!
你写个,我来帮你瞅瞅!

板凳

弄个飞递归的!书上好像都是递归的!
void Function(int num,int *des);

void Function(int num,int *des)
{
    int last = 1,current = 1;
     for (int i = 0; i<num; i++)
     {
        if (i>1)
        {
            *(des+i) = *(des+i-1)+*(des+i-2);
        }
        else
        {
            *(des+0) = 1;
            *(des+1) = 1;
        }
     }
}




int main(void)
{
    
    int sor[10]= {0};
    Function(10,sor);
    for (int i = 0; i<10; i++)
    {
        printf("sor[%d] = %d\n",i,sor[i]);
    }
    return 0;
}

有不妥的地方,请楼下指正!

3 楼

我也是初学者,不会用指针,所以写了个很菜鸟的:

#include<iostream.h>
#include<stdlib.h>
int main(void)
{
    int i=1,j=1,k=1;
    while(k<6)
    {
              k++;
       cout<< i<<"\n";
         i=j+i;
       cout<< j<<"\n";
         j=i+j;
    }            
    system ("pause");;
    return 0;
}    

4 楼

我也是个初学者,试写一个,如下:
#include <stdio.h>

void main()
{
    int f1 = 1,f2 = 1,k;
    printf("%6d,%6d",f1,f2);
    for(k = 0;k < 8;k++)
    {     
        f1 = f1 + f2;
        f2 = f2 + f1;
        printf("%6d,%6d",f1,f2);
        if(k % 4 == 0) printf("\n");
    }
}

5 楼



/* 用于产斐波那契数列的前10个数(1,1,2,3,5,8,13,...  */
#include<stdio.h>
void generate(int N){
    int m=1,n=1;
    int mn = m+n;
    int k=1;
    if(k++ == 1)printf("1,");
    if(k++ == 2) printf("2,");
    for(;k<=N;k++){
        printf("%d,",mn);
        m=n;n=mn;mn=m+n;
    }
}

int main(int argc,char *argv[]){
    int num;
    puts("\nhow many fabonacci numbers do you like to generate(1,1,2,3,...):");
    scanf("%d",&num);
    printf("the first %d fabonacci numbers are:\n",num);
    generate(num);
    puts("\n");
    return 0;
}

6 楼

/*这个好像更简单点,借鉴楼上的几位~~*/
#include<stdio.h>
int main(int argc,char *argv[]){
    
    int f1=1,f2=1,f3;
    int num,k;
    puts("how many fabonacci numbers do you want to show?");
    scanf("%d",&num);
    for(k=1;k<=num;k++){
        f3=f1+f2;
        printf("%5d",f1);
        f1=f2;f2=f3;
        }
     printf("\n");
    return 0;
}

7 楼


前10个数字,你多写了,要控制一下喽

8 楼

[quote]
前10个数字,你多写了,要控制一下喽[/quote]
很无语阿~~~

打个比方,比如你说要吃饭(吃一碗饭),我给你端来了一桶,你说你只要一碗饭~~~ 知道结果我怎么了么??  结果我无语了~~~  相当无语~~  路过~~[em6]

9 楼


大侠,这题目就这么要求的啊[em7][em7]

10 楼

#include<stdio.h>
int main(int argc,char *argv[]){
    
    int f1=1,f2=1,f3;
    int num=10,k;
   // puts("how many fabonacci numbers do you want to show?");
   // scanf("%d",&num);
   // for(k=1;k<=num;k++){
        f3=f1+f2;
        printf("%5d",f1);
        f1=f2;f2=f3;
        }
     printf("\n");
    return 0;
}

感觉掉坑里了~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册