yihayoooooo 发表于 2020-7-17 16:11:05

函数

能帮忙写一段程序吗{:10_266:}
编写函数fun,功能是求数列中大于t的最小的一个数,结果由函数返回。其中数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
谢谢!!

永恒的蓝色梦想 发表于 2020-7-17 16:18:11

斐波那契数列?

KevinHu 发表于 2020-7-17 16:24:10

int f(int n)
{
        if (n == 0)
        {
                return 0;
        }
        if (n == 1)
        {
                return 1;
        }
        return f(n - 1) * f(n - 2);
}

int fun(int t):
{
        for (int i = 0; ; i++)
        {
                if (f(i) > t)
                {
                        return f(i)
                }
        }
}

可以加上记忆化搜索,效率会更高

sunrise085 发表于 2020-7-17 16:35:58

本帖最后由 sunrise085 于 2020-7-17 16:38 编辑

#include <stdio.h>
int fun(int t)
{
    int a=1,b=1,c=1;
    while(c<=t)
    {
      a=b;
      b=c;
      c=a+b;
    }
    return c;
}
int main()
{
    printf("%d\n", fun(7));
    return 0;
}
页: [1]
查看完整版本: 函数