C语言实现Fibonacci数列递归
/* 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 */ #include#include intN=10007; /*计算Fibonacci函数*/ intFibonacci(intn) { intFn; if(n==1||n==2) { Fn=1; } else { Fn=(Fibonacci(n-1)+Fibonacci(n-2))%N; } return(Fn); } intmain(void) { intn,tap=1,F1,F2,Fn; /*判断是否继续分析下一个数。*/ while(tap) { /*保证分析的数有效*/ do { printf("*************Fibonacci***************\n");/*简易菜单*/ printf("Pleaseenterapositiveintegerforanalysis:\n"); scanf("%d",&n); }while(n<1); /*开始分析*/ Fn=Fibonacci(n); printf("%d\n",Fn); /*判断是否继续分析下一个数*/ printf("enter1tocontinue,enter0toquit:\n"); scanf("%d",&tap); printf("\n"); } printf("ThankYou.\n"); return0; }
采用递归的方法,一次运行多次分析,若想一次运行只分析一次,只需将while循环去掉即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。