6-7 使用函数求Fibonacci数(一维数组)

作者 颜晖

单位 浙大城市学院

本题要求实现求Fabonacci数列项的函数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。

函数接口定义:

 
int fib( int n );

函数fib应返回第n项Fibonacci数。题目保证输入输出在长整型范围内。

裁判测试程序样例:

#include <stdio.h>

int fib( int n );

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\n", fib(n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

7

输出样例:

13

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C程序如下:

int fib( int n )
{
    int s[n + 1], k;//定义一个长度为n+1的数组和用来储存数组下标的变量
    s[0] = 0;//将数组的第一变量赋值为0
    s[1] = 1;//将数组的第二个变量赋值为1
    if(n == 1)//如果要求第一项的斐波那契值
    {
        return 1;//直接返回1
    }
    for(int i = 2; i <= n; i++)
    {
        s[i]= s[i - 1] + s[i - 2];//数组储存每一项的斐波那契值
        k = i;//最终要求的一项的斐波那契值的数组下标用k来表示
    }
    return s[k];//返回要求的斐波那契值
}

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 调用函数结构程序题: 1.1 比较两个,输出最大者 1.2 输入两个实,用一个函数出他们之和 1.3 递推方法n! 1.4 有两个班级,分别有35名和30名学生,调用函数,分别这两个班的平均值 1.5 用选择法对组中的10个整按由小到大排序 1.6 有一个3*4的矩阵,所以=有元素中的最大值 1.7 有一个,内放10个,不用全局变量出最大值,最小值,和平均值。 1.8 用调用函数最大公约和最小公倍。两个整由键盘输入 1.9 写出一个判素函数,在主函数输入一个整,输出是否为素的信息 1.10 用调用函数水仙花 1.11 用调用函数将3*3的二维组行和列互换 1.12 对10个由小到大排序,用函数调用冒泡法 2 组结构程序题: 2.1 Fibonacci(斐波那契)列的前40个 2.2 用组来处理Fibonacci 列问题 2.3 将一个二维组行和列的元素互换,存到另一个二维组中 2.4 一个3*3的矩阵的对角线之和 2.5 将一个组中的值按逆序重新存放,例如:原来顺序为8,6,5,4,1.要改为1,4,5,6,8.注:考虑偶或奇时怎么交换 2.6 输入十个,去掉最大和最小平均值 2.7输入六个列中,再输入一值,如果与该相同组的元素相同时,则输出其下标,否则,输出“-1” 2.8降序排列十个 2.9 一个二维组的最大值和最小值 2.10 一个4*4矩阵所有元素的和 3 循环结构程序题 3.1 输入一个大于3的整n,判断它是否为素(素又称质,就是除了能被1和它本身整除之外,不能被其它自然整除的自然) 3.2 输入两个最大公约和最大公倍 3.3输入一行字符,输出其英文字母,空格,字,和其它字符的个 3.4 2+22+222+2222+2222,位值自己输入 3.5“水仙花”是一个三位其各位字的立方和等于该本身 3.6 有一个分序列 2/1,3/2,5/3,8/5,13/8,21/13,......出这个序列的前20项之和 3.7 计算1-3+5-7+.....-99+101的值 3.8 n!的值 3.9 .判断一个是否为素? 3.10 输出九九乘法表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值