zoukankan      html  css  js  c++  java
  • 19. 斐波那契数

     时间限制: 1 s

     空间限制: 128000 KB

     题目等级 : 黄金 Gold

    题解

     查看运行结果

    题目描述 Description

    X是个聪明的孩子,他记得斐波那契数列f(n)中前1000个数。不过由于学业的压力,他无法记得每一个数在数列中的位置。

    他现在知道斐波那契数列中的一个数f(x)P后的值N(即f(x) mod P=N以及x可能的最大值M,如果再对于斐波那契数列中每一个数都模P,他想知道这个数可能出现在第几个。不过小X还要做作业呢,这个问题就交给你由编程来解决了。

    输入描述 Input Description

    一行,共3个整数,第一个数为N,第二个数为P,第三个数为x可能的最大值M,三个数以空格隔开。

    输出描述 Output Description

    一个整数,满足f(i) mod P = N的最小的i,如果不存在则输出-1

    样例输入 Sample Input

    5

    样例输出 Sample Output

    4

    数据范围及提示 Data Size & Hint

    对于20%的数据,保证0M≤50

    对于50%的数据,保证0M≤100

    对于70%的数据,保证0M≤500

    对于100%的数据,保证0M≤10000≤N

    P为素数且2

    5

    代码:

    #include

    using namespace std;

    #include

    int n,p,m;

    int f[1001];

    int main()

    {

           scanf("%d%d%d",&n,&p,&m);

           f[1]=1;f[2]=1;

           if(n==1)

           {

                  cout<<1<<endl;

                  return 0;

           }

           int flag=0;

           for(int i=3;i<=m;++i)

        {

               f[i]=(f[i-1]+f[i-2])%p;

               if(f[i]==n)

               {

                      printf("%d ",i);

                      return 0;

                  }

           }

           if(flag==0)

           {

                  printf("-1 ");

                  return 0;

           }

           return 0;

     } 时间限制: 1 s

     空间限制: 128000 KB

     题目等级 : 黄金 Gold

    题解

     查看运行结果

    题目描述 Description

    X是个聪明的孩子,他记得斐波那契数列f(n)中前1000个数。不过由于学业的压力,他无法记得每一个数在数列中的位置。

    他现在知道斐波那契数列中的一个数f(x)P后的值N(即f(x) mod P=N以及x可能的最大值M,如果再对于斐波那契数列中每一个数都模P,他想知道这个数可能出现在第几个。不过小X还要做作业呢,这个问题就交给你由编程来解决了。

    输入描述 Input Description

    一行,共3个整数,第一个数为N,第二个数为P,第三个数为x可能的最大值M,三个数以空格隔开。

    输出描述 Output Description

    一个整数,满足f(i) mod P = N的最小的i,如果不存在则输出-1

    样例输入 Sample Input

    5

    样例输出 Sample Output

    4

    数据范围及提示 Data Size & Hint

    对于20%的数据,保证0M≤50

    对于50%的数据,保证0M≤100

    对于70%的数据,保证0M≤500

    对于100%的数据,保证0M≤10000≤N

    P为素数且2

    5

    代码:

    #include

    using namespace std;

    #include

    int n,p,m;

    int f[1001];

    int main()

    {

           scanf("%d%d%d",&n,&p,&m);

           f[1]=1;f[2]=1;

           if(n==1)

           {

                  cout<<1<<endl;

                  return 0;

           }

           int flag=0;

           for(int i=3;i<=m;++i)

        {

               f[i]=(f[i-1]+f[i-2])%p;

               if(f[i]==n)

               {

                      printf("%d ",i);

                      return 0;

                  }

           }

           if(flag==0)

           {

                  printf("-1 ");

                  return 0;

           }

           return 0;

     }

  • 相关阅读:
    java国际化---native2ascii.exe 的使用方法
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十四)谈谈写博客的原因和项目优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十二)数据层优化-explain关键字及慢sql优化
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合
    Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)结合MockMvc进行服务端的单元测试
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5370804.html
Copyright © 2011-2022 走看看