| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1370 人关注过本帖
标题:这种输出可能吗?关于Fibonacci问题
只看楼主 加入收藏
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
结帖率:100%
收藏
 问题点数:0 回复次数:23 
这种输出可能吗?关于Fibonacci问题
/*题目描述
题目标题:
Fibonacci数列(胡宁静)
 题目描述:
Fibonacci数列{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...},可以如下定义:
F0=0 F1=1 Fi=F(i-1)+F(i-2) 对于所有的i大于2 写个程序计算Fibonacci数
 输入描述:
第一行为需要测试个数T,接着的1行,输入T个数据,
每一个数据包含一个数n(0<=n<=45 ),即你需要计算的F(n)
输出描述:
对每输入的数n,输出对应的F(n),每个F(n)之间包含一个空格,最后一行输出不含回车。
样式输入:
5
0 3 5 9 20
样式输出:
0 2 5 34 6765*/
 这种输出可能吗?另外问  不知道数组元素数量,可以用指针解决这个问题吗?
搜索更多相关主题的帖子: 计算 元素 
2012-12-13 20:08
Berrysun
Rank: 1
来 自:浙江中医药大学
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-11-17
收藏
得分:0 
亲你的n和f(n)之间是什么关系

没有伞的孩子,只能努力奔跑。
2012-12-13 20:15
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
收藏
得分:0 
回复 楼主 浅水无殇
5
0 3 5 9 20
5代表求证个数
n 即第二行的数
比如 0 则 f位数列第一个数 0

wula wual
2012-12-13 20:21
Berrysun
Rank: 1
来 自:浙江中医药大学
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-11-17
收藏
得分:0 
回复 3楼 浅水无殇
你第二行的第n个数应该都有某种关系f使得它有f(n)吧

没有伞的孩子,只能努力奔跑。
2012-12-13 20:25
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
收藏
得分:0 
Fibonacci数列{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...}
对应着f0 f1 f2....也就是说n=0,f0=0
n 对应的fn 就是Fibonacci数列中第n+1项(如果项数是从1开始算的话。。)

wula wual
2012-12-13 20:31
Berrysun
Rank: 1
来 自:浙江中医药大学
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-11-17
收藏
得分:0 
回复 5楼 浅水无殇
斐波那契数列里面第三个的值等于前两个之和,是有规律可循的
你的第二行出现的都是随机数吧。。。

没有伞的孩子,只能努力奔跑。
2012-12-13 20:41
浅水无殇
Rank: 2
等 级:论坛游民
帖 子:123
专家分:75
注 册:2012-11-23
收藏
得分:0 
回复 6楼 Berrysun
样式输入:
5
0 3 5 9 20
样式输出:
0 2 5 34 6765*/
这种输出可能吗?另外问  不知道数组元素数量,可以用指针解决这个问题吗?
这个才是重点。。。算法我知道。。

wula wual
2012-12-13 20:42
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
怎么不可能啊?下面就是用变长数组实现的
#include<stdio.h>
int Fib(int num)
{
    int i=1,F,f1=1,f2=1;
    if(num==0)    return 0;
    if(num==1||num==2)    return 1;
    while(1)
    {
        F=f1+f2;
        if(num-2==i++)    return F;
        f1=f2;
        f2=F;
    }
   
}
int fun(int *num,int n)
{
    int i;
    for(i=0;i<n;i++,num++)
    {
        *num=Fib(*num);
    }
    return 0;
}
int show(int *num,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%d ",*num++);
    }
    printf("\n");
    return 0;
}
int main()
{
    int n,i;
    printf("几个数:");
    scanf("%d",&n);
    int num[n];
    printf("请输入%d个数:",n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&num[i]);
    }
    fun(num,n);
    show(num,n);
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 小小战士 于 2012-12-13 20:50 编辑 ]

小小战士,战士中的战斗机!
2012-12-13 20:48
Berrysun
Rank: 1
来 自:浙江中医药大学
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-11-17
收藏
得分:0 
完全不能理解你的问题。。。
但是,数组它本身定义的时候就是个范围,当然可以用指针指向数组,指针后移当数组为空时就停止打印就行了。

没有伞的孩子,只能努力奔跑。
2012-12-13 20:49
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用Berrysun在2012-12-13 20:49:23的发言:

完全不能理解你的问题。。。
但是,数组它本身定义的时候就是个范围,当然可以用指针指向数组,指针后移当数组为空时就停止打印就行了。
理解能力比较弱  晚上睡不到觉  好好想想

DO IT YOURSELF !
2012-12-13 20:51
快速回复:这种输出可能吗?关于Fibonacci问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014194 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved