从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要为大家展示了“SpringBoot中Fibonacci数列的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot中Fibonacci数列的示例分析”这篇文章吧。
成都服务器托管,创新互联提供包括服务器租用、成都多线服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名与空间等业务的一体化完整服务。电话咨询:18980820575
对于这个问题,拿到手,马上想到的是:先求Fibonacci数列,再求余数。但是极其不建议这样暴力计算。因为当n很大时,计算时间较长,还可能发生数值溢出的情况!
所以,这里给出另外一种思路:间接方式求余数
首先,科普一个求余公式:(a+b)% c = (a%c+b%c)%c
这个式子不难理解,可以代值进去试试看。
所以,不难得出:f(n)%m = [f(n-1)+f(n-2)]%m = [f(n-1)%m+f(n-2)%m]%m
由题目可知,最终求f(n)%m,因此令:g(n)=f(n)%m,其中m=10007。
于是求余递推公式为:g(n)=[g(n-1)+g(n-2)]%m
其中,m=10007,g(1)=g(2)=1%m=1
完整代码如下:
#includeusing namespace std;int main(){ int f1=1,f2=1;int temp=0; //中间变量int output=0; //输出long n=0; //初始化输入 cin>>n;if(n==1||n==2){ output=1; //当n=1或2时,输出为1} else{ for(int i=3;i<=n;i++){ temp=f2; f2=(f1+f2)%10007; //当n大于2时,递推计算 f1=temp;} output=f2;} cout<
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图