我是一名CSE学生,正准备参加编程竞赛.现在我正在研究Fibonacci系列.我有一个大小约为包含正整数的Kilo字节的输入文件.输入甲酸酯看起来像
3 5 6 7 8 0
Run Code Online (Sandbox Code Playgroud)
零表示文件结束.输出应该如此
2
5
8
13
21
Run Code Online (Sandbox Code Playgroud)
我的代码是
#include<stdio.h>
int fibonacci(int n) {
if (n==1 || n==2)
return 1;
else
return fibonacci(n-1) +fibonacci(n-2);
}
int main() {
int z;
FILE * fp;
fp = fopen ("input.txt","r");
while(fscanf(fp,"%d", &z) && z)
printf("%d \n",fibonacci(z));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该代码适用于样本输入并提供准确的结果但问题是我的实际输入集它花费的时间超过我的时间限制.谁能帮我吗.
我在Visual Studio 2008专业版中创建了一个项目.
这个项目为每个分配包含一个.cpp文件,如下所示......
[-]Source Files
\
|-- 233.cpp
|-- test.cpp
Run Code Online (Sandbox Code Playgroud)
每个文件都包含main()的定义.
操作:CTRL + F5
Error 1 error LNK2005: _main already defined in 233.obj test.obj
Error 2 fatal error LNK1169: one or more multiply defined symbols found
Run Code Online (Sandbox Code Playgroud)
如何编译并查看每个文件的输出?
谢谢.
我已经看到了类似的问题(但在C中) - 在C中递归计算Fibonacci数字关于我的问题.
我有点坚持如何继续打印斐波那契数字,直到它达到大约40,000,在我的控制台应用程序的C#中,我怎样才能实现这一目标?
EG,我希望应用程序执行此操作:
0
1
1
2
3
5
8
and so on.
Run Code Online (Sandbox Code Playgroud)
谢谢.我不想这么说,但我有一个脑电波,并解决了它!
这是我做的:
static void Main(string[] args)
{
int num1 = 0;
int num2 = 1;
int sum = 1;
while (num1 <= 15000)
{
sum = num1 + num2;
num1 = num2;
num2 = sum;
Console.WriteLine(num2);
}
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)