#include "stdafx.h"
using namespace std;
int fib(int n) //用递归做的函数,速度不说了,超TM慢
{
if ((n==1)||(n==2))
{
return 1;
}
return (fib(n-1)+fib(n-2));
}
int fib2(int n) //用for做的函数,速度比递归快的多
{
int i=n;
int result_n=1;
int result_n_1=1;
    int t;
for (i=1;i<n-1;i++)
{ t=result_n;
result_n=result_n+result_n_1;
result_n_1=t;
}
return result_n;
}
main ()
{
int number;
cout<<"输入一个数";
cin>>number;
cout<<fib(number);
int temp;
cin>>temp;
}
报错
d:\我的文档\visual studio projects\c++\c++\c++.cpp(2) : fatal error C1004: 遇到意外的文件结束
改成
/*用递归做的函数,速度不说了,超TM慢*/
/*用for做的函数,速度比递归快的多*/
为什么啊?
请大家说说。
谢谢

解决方案 »

  1.   

    改成
    /*用递归做的函数,速度不说了,超TM慢*/
    /*用for做的函数,速度比递归快的多*/
    就能运行了
      

  2.   

    #include "stdafx.h"
    using namespace std;
    int fib(int n)//用递归做的函数,速度不说了,超TM慢
    {
    if ((n==1)||(n==2))
    {
    return 1;
    }
    return (fib(n-1)+fib(n-2));
    }
    int fib2(int n)//用for做的函数,速度比递归快的多
    {
    int i=n;
    int result_n=1;
    int result_n_1=1;
        int t;
    for (i=1;i<n-1;i++)
    { t=result_n;
    result_n=result_n+result_n_1;
    result_n_1=t;
    }
    return result_n;
    }
    main ()
    {
    int number;
    cout<<"输入一个数";
    cin>>number;
    cout<<fib(number);
    int temp;
    cin>>temp;
    }
      

  3.   

    我发现了一个非常奇怪的问题,我的第一个程序,把它复制到CSDN中,再把它从CSDN再复制回 .NET 2003 ,就能运行了,不报错了?怎么回事?
      

  4.   

    你中间的空格可能是unicode的控制字符
      

  5.   

    如果你的函数是从别处考的,那么有可能会考上那些unicode的控制字符
      

  6.   

    不是,是我用键盘打上去的,
    To: EnochShen(小疯子:真的好菜—知耻而后勇!) 
    变成绿色了
      

  7.   

    你们要不要.txt 文件?
    从txt中复制过去也会出错?
    告诉我邮箱
    我发给你们
      

  8.   

    #include "stdafx.h"
    using namespace std;
    int fib(int n) //用递归做的函数,速度不说了,超TM慢
    {
    if ((n==1)||(n==2))
    {
    return 1;
    }
    return (fib(n-1)+fib(n-2));
    }
    int fib2(int n) //用for做的函数,速度比递归快的多
    {
    int i=n;
    int result_n=1;
    int result_n_1=1;
        int t;
    for (i=1;i<n-1;i++)
    { t=result_n;
    result_n=result_n+result_n_1;
    result_n_1=t;
    }
    return result_n;
    }
    main ()
    {
    int number;
    cout<<"输入一个数";
    cin>>number;
    cout<<fib(number);
    int temp;
    cin>>temp;
    }