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

    2834 斐波那契数

     

     

    时间限制: 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

    3 7 5

    样例输出 Sample Output

    4

    数据范围及提示 Data Size & Hint

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

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

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

    对于100%的数据,保证0<M≤1000,0≤N<P,P为素数且2<P<105。

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 const int N=1000;
     5 int f[N];
     6 int main()
     7 {
     8     int n,p,m;
     9     cin>>n>>p>>m;
    10     f[1]=1;
    11     f[2]=1;
    12     if(n==1){cout<<"1";return 0;}//tepan
    13     for(int i=3;i<=m;i++)
    14      {
    15          f[i]=(f[i-1]+f[i-2])%p;
    16          if(f[i]==n)
    17           {
    18               cout<<i;
    19             return 0; 
    20           }
    21      }
    22      cout<<"-1";
    23      return 0;
    24 }
  • 相关阅读:
    03JavaScript实现轮播特效21
    03JavaScriptBOM(location...)20
    03JavaScriptBOM(window)19
    03JavaScriptDOM事件18
    03JavaScriptDOM基础17
    03JavaScript函数16
    03JavaScript的流程控制语句15
    03JavaScript语法14
    02css布局案例
    Sublime Text 3 配置 C/C++ 编译器
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/6743962.html
Copyright © 2011-2022 走看看