动态规划DP----ppt

#include <stdio.h>
int fib(int n)
{
if(n<=1) return 1;
else return fib(n-1)+fib(n-2);
}
int main( )
{
int n;
scanf("%d",&n);
printf("%d
" ,fib(n) );
}
View Code

#include <stdio.h>
int fib(int n)
{
    if(n<=1)     return 1;
    else         return fib(n-1)+fib(n-2);
}
int main( )
{
    int n;
    while(scanf("%d",&n))
    printf("%d
" ,fib(n) );
}
View Code

230=(2103====109


 

240=(210)4====1012                        250===1015


 

2的10次方是1024
2的46次方是1024的5次方除以2的4次方=70368744177664.00=======1013

#include <stdio.h>
#define MAX 50+1
int a[MAX];
int fib(int n)
{     if (a[n]==-1)
          return a[n]=fib(n-1)+fib(n-2);
     else  return  a[n];  
}
int main( )
{    int i,n;
    for(i=1; i<MAX; i++)    a[i]=-1;
         a[0]=a[1]=1;
    scanf("%d",&n);   printf("%d
" ,fib( n ) );
}
View Code

#include <stdio.h>

#define MAX 50+1

int a[MAX];

int fib(int n)

{              if (a[n]==-1)         return a[n]=fib(n-1)+fib(n-2);    // 如果a[n]==-1  ,,,没算过

                 else                     return a[n];      

 }

int main( )

{

int i,n;

for(i=1; i<MAX; i++)          a[i]=-1;                          //做记号 ,,,所有元素   初值  -1

a[0]=a[1]=1;                                                       // 赋值,,初始化,,,,已知条件

scanf("%d",&n);

printf("%d " ,fib( n ) ); }

原文地址:https://www.cnblogs.com/2014acm/p/3905832.html