• #2019120700019-LG 斐波那契数列


    P1962 P3986等基础模板

    1 递归(自调用)

    //加入优化 
    #include <iostream>
    #include <cstring>
    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int fib[5005];
    int f(int g){
    	if(g==1||g==2) return 1;
    	if(fib[g]!=-1) return fib[g];
    	fib[g]=f(g-1)+f(g-2);
    	return fib[g];
    } 
    int main( ){
    	//memset(fib,-1,sizeof(fib));
    	for(int i=1;i<=5005;i++) fib[i]=-1; 
    	int a;
    	int n;
    	scanf("%d",&n);
    	while(n--){
    		scanf("%d",&a);
    		printf("%d
    ",f(a));	
    	}
    	return 0;
    } 
    

    2 递推 (先读入后递归)

    #include<cstdio>
    #include <cstring>
    using namespace std;
    int main( ){
    	int f[1000005];
    	int n;
    	scanf("%d",&n);
    	while(n--){
    		memset(f,0,sizeof(f));
    		f[1]=1,f[2]=1;
    		int a=0;
    		scanf("%d",&a);
    			for(int i=3;i<=a;i++){
    			f[i]=f[i-1]%1000+f[i-2]%1000;
    		}
    		printf("%d
    ",f[a]%1000);
    	}
    	return 0;
    } 
    

    3 递推(先递归后读入)

    #include<cstdio>
    #include <cstring>
    using namespace std;
    	int f[1000005];//写在这里就能正常运行 
    int main( ){
    //int f[1000005] 如果写在main里面,那么会爆 
    	int n;
    	scanf("%d",&n);
    	memset(f,0,sizeof(f));
    	f[1]=1,f[2]=1;
    		for(int i=3;i<=1000005;i++){
    		f[i]=f[i-1]%1000+f[i-2]%1000;
    }
    	while(n--){
    		int a=0;
    		scanf("%d",&a);
    		printf("%d
    ",f[a]%1000);
    	}
    	return 0;
    } 
    
    要做就做南波万
  • 相关阅读:
    线程池的状态整理
    线程池 ThreadPoolExecutor 源码整理
    ReentrantReadWriteLock 源码分析
    ReentrantLock 锁释放源码分析
    编译Hadoop源码
    Ubuntu安装secureCRT
    ubuntu中为hive配置远程MYSQL database
    解决Ubuntu下sublime3无法输入中文
    Ubuntu下安装PAC Manager
    Git起步--git安装与初次运行git前配置
  • 原文地址:https://www.cnblogs.com/liuziwen0224/p/12000509.html
Copyright © 2020-2023  润新知