TouchStone
  Please Login
ログイン 登録
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • P5275
  • 問題
  • P5275Fibonacci计数
    制限 : 時間制限 : - MS   メモリ制限 : - KB
    審判説明 : 1s 256MB
    問題説明

    我们这样定义斐波那契数列,\(F[1]=1,F[2]=1\),当$n>2时F[n]=F[n-1]+F[n-2]。$

    斐波那契数列的前$10$项为:$1,1,2,3,5,8,13,21,34,55。$

    欧几里得算法求解两个数的最大公约数。我们记$gcd(a,b)$为整数$a$与$b$的最大公约数。

    当$b=0$时,\(gcd(a,0)=a\),否则$gcd(a,b)=gcd(b,a%b)\(。其中\)%$为取余运算。

    在算法设计中,求解两个数字公约数的函数往往使用递归进行运算。

    我们现在定义$count(a,b)$为$a,b$两个整数在使用欧几里得算法求解最大公因数时的递归次数。

    例如$count(4,8)=3$,运算过程如下:

    第一次调用$gcd$函数时进入$gcd(4,8)$,参数$b$不为$0$,所以递归进入$gcd(8,4)$。

    进入$gcd(8,4)$为函数的第二次调用,参数$b$不为$0$,所以递归进入$gcd(4,0)$。

    进入$gcd(4,0)$为函数的第三次调用,参数$b=0$。所以递归达到终点,停止递归。

    在运算$gcd(8,4)$时共计进行了$3$次运算,所以$count(8,4)=3$。

    现在给定一个正整数$x$,何老板想要知道$count(F(x),F(x+1))$的值,你能告诉他么?

    入力形式

    第一行输入一个正整数$T(T≤1000)$,表示有T组数据。 接下来T行,每行输入一个正整数$x(1≤x≤1000000000)。$

    出力形式

    对于每组数据,依次输出一行一个正整数表示$count(F(x),F(x+1))$

    サンプル入力

    4
    2
    3
    4
    5

    サンプル出力

    3
    4
    5
    6