| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:为什么输出和答案不一样??求解~~~
只看楼主 加入收藏
rongwin
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2012-10-28
结帖率:20%
收藏
已结贴  问题点数:15 回复次数:2 
为什么输出和答案不一样??求解~~~
题目描述

编写升序输出m和n之间所有的Fibonacci数。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

例如,fib(7)返回13

*Fibonacci={1,1,2,3,5,8,13,................}

an=an-1+an-2

输入


两个数m和n

输出

所有属于闭区间[m,n]即大于等于m,小于等于n的斐波那契数的和。

样例输入

2 5
样例输出

10





我是这么写的:

#include <stdio.h>
int fib(int n)
{
    int result;
    if (n<=0)
        printf("input error!\n");
    else if(n==1||n==2)
        result=1;
        else
        result=fib(n-1)+fib(n-2);
    return(result);
}
int main()
{

      int i,s=0;
      int m,n;

     scanf("%d%d",&m,&n);
     for (i=1;;i++)
     {
         if(fib(i)>=m && fib(i)<=n)
         {
             s=s+fib(i);
         }
    printf("%d\n",s);     
     }
      
}
为什么输出有很多行的10?????应该怎么改额?
搜索更多相关主题的帖子: include result 
2012-11-30 21:28
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:15 
程序代码:
#include <stdio.h>
int fib(int n)
{
    int result;
    if (n<=0)
        printf("input error!\n");
    else if(n==1||n==2)
        result=1;
        else
        result=fib(n-1)+fib(n-2);
    return(result);
}
int main()
{

      int i,s=0;
      int m,n;

     scanf("%d%d",&m,&n);
     for (i=m;i<=n;i++)
     {
         s+=fib(i);  
     }
     printf("%d\n",s);
      return 0;
}
应该这样,你的错误有点多

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-30 21:44
rongwin
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2012-10-28
收藏
得分:0 
不对额,你的答案是11不是10
2012-11-30 22:05
快速回复:为什么输出和答案不一样??求解~~~
数据加载中...
 
   



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

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