黑马程序员技术交流社区

标题: C语言基础,用地柜函数实现斐波那契数列 [打印本页]

作者: 陈昭燊    时间: 2015-10-16 13:16
标题: C语言基础,用地柜函数实现斐波那契数列
问题描述: Fiboracci数列的地推公式为:Fn=F(n-1)+F(n-2),其中F1=F2=1;当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少?n的范围是1<=n<=1,000,000;
       由于n非常大,如果把Fn的值算出来,数值非常大,变量不能保存很多位,所以,每求一次Fn的时候,都%10007,最后即可求出的Fn的余数,详细见代码;
  1. #include<stdio.h>
  2. int f(int n)
  3. {
  4.     int f1,f2,f3;
  5.     f1=1;
  6.     f2=1;
  7.     if(n<=2)
  8.     return 1;
  9.     else if(n>=3)
  10.     {
  11.         for(int i=3;i<=n;i++)
  12.         {
  13.              f3=(f1+f2)%10007;
  14.              f1=f2;
  15.              f2=f3;
  16.         }
  17.        return f3;
  18.     }
  19. }
  20. int main()
  21. {
  22.      int n;
  23.      scanf("%d",&n);
  24.      printf("%d",f(n));
  25.      return 0;
  26. }
复制代码




作者: wpf986530062    时间: 2015-10-16 13:20
表示现在还看不懂。。。好强大哦
作者: 陈昭燊    时间: 2015-10-16 17:55
wpf986530062 发表于 2015-10-16 13:20
表示现在还看不懂。。。好强大哦

以前的做的,笔记上得一道题目,敲出来分享一下,现在都忘很多了
作者: 木亙。    时间: 2015-10-16 22:52
围观,学习学习
作者: y83685975    时间: 2015-10-16 23:14
围观,学习学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2