斐波那契数列求第n个值的数?
											斐波那契数列F0=0,F1=1,F2=1,F3=2......Fn=Fn-1+Fn-2;当输入第几行时,就输出第几行的数, 如n=7时,就输出13,求教各位大佬,这个题怎么来写呢?
如n=7时,就输出13,求教各位大佬,这个题怎么来写呢?										
					
	 程序代码:
程序代码:#include<stdio.h>
int func(int n)
{
    if (n == 0)
        return 0;
    if (n == 1)
        return 1;
    return func(n - 1) + func(n - 2);
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    
    printf("%d", func(n));
    
    return 0;
} 程序代码:
程序代码:#include<stdio.h>
int main()
{
    int n = 0, i = 0, a[1000] = { 0 };
    a[0] = 0;
    a[1] = 1;
    scanf("%d", &n);
    
    for (i = 2; i <= n; i++)
    {
        a[i] = a[i - 1] + a[i - 2];
    }
    
    printf("%d", a[n]);
    return 0;
}										
					
	
 程序代码:
程序代码:unsigned fibonacci( const unsigned& first, const unsigned& second, size_t n )
{
    // a *= b
    #define MUL(a,b) do {\
        unsigned t00 = a##00*b##00+a##01*b##10;\
        unsigned t01 = a##00*b##01+a##01*b##11;\
        unsigned t10 = a##10*b##00+a##11*b##10;\
        unsigned t11 = a##10*b##01+a##11*b##11;\
        a##00=t00, a##01=t01, a##10=t10, a##11=t11;\
    } while(0)
    unsigned r00=1,r01=0,r10=0,r11=1;
    for( unsigned v00=0,v01=1,v10=1,v11=1; n!=0; n/=2 )
    {
        if( n%2 == 1 )
            MUL(r,v); // r*=v
        MUL(v,v); // v*=v;
    }
    return r00*first + r01*second;
    #undef MUL
}
#include <stdio.h>
int main( void )
{
    printf( "f(0) = %u\n", fibonacci(0,1,0) );
    printf( "f(1) = %u\n", fibonacci(0,1,1) );
    printf( "f(2) = %u\n", fibonacci(0,1,2) );
    printf( "f(3) = %u\n", fibonacci(0,1,3) );
    printf( "f(7) = %u\n", fibonacci(0,1,7) );
}