c - 斐波那契数列有一些运行时错误
问题描述
[在此处输入图像描述][1][此处当我if(series==0) return 0;
在此之前采用斐波那契定义函数,if(series==1) return 1;
然后斐波那契数列打印成功,但是当我删除此行然后编译我的程序时,它需要 term inout 然后显示一条错误消息,如
Fibonacci.exe 已停止工作 ,但是当我添加该行程序时成功执行。发生了什么事。有人会告诉我][2] 这是我的代码:
#include<stdio.h>
int fibonacci(int); // declaration of fibonacci function.
int main(){
int input_num,i,series=1;
printf("Enter the term you want to print fibonacci series : ");
scanf("%d", &input_num);
printf("\n Fibonacci Series Are : ");
for(i=0; i<input_num; i++){
printf("%d,", fibonacci(series));
series++;
}
return 0;
}
//defination of fibonacci function
int fibonacci(int series){
if(series==1) return 1;
return(fibonacci(series-1)+fibonacci(series-2));
}
解决方案
每个递归函数都需要某种基本条件来收敛。在斐波那契程序中,该函数被递归调用两次,fibonacci(n-1)
并且fibonacci(n-2)
. 这里可能有两种基本情况,这就是为什么你必须同时检查 0 和 1。
例如:斐波那契(3) ==> 斐波那契(1) + 斐波那契(2)
斐波那契(2) ==> 斐波那契(1) + 斐波那契(0)
if(series==0) return 0;
else if(series==1) return 1;
else return(fibonacci(series-1)+fibonacci(series-2));
推荐阅读
- python - 与范围相关的 django 相关字段过滤器
- python - 根据用户获取最新的直接消息 + 发件人 ID - Tweepy
- java - 如何获取 zip 文件中所有目录的列表
- javascript - 如何将外部 js 文件链接到 reactjs 应用程序并在反应应用程序中进行更改?
- spring - 从一个 Rest Service 到另一个 Rest Service 进行异步(异步)时如何不丢失 Request 属性
- python-3.x - 在列表中查找相同值的索引的最快方法
- php - 致命错误:未捕获的错误:不是 Hack 文件。HHVM 可以运行 .php 文件吗?
- java - JavaFX Scene 2 按钮上的操作不起作用
- c - 忽略包含指令
- oracle - 无法在 Oracle 学习管理系统 (ebs 12.2) 上播放符合 Scorm 1.2 的内容