递推 & 递归

  递推就是从问题的初始状态出发,通过状态之间的逻辑关系,逐步的层层推进,实现状态的转移,达到目标状态的解题方法。而递归就是从问题的目标状态出发,不断的把问题规模缩小,最终达到问题边界条件的解题方法。

  例1:蟠桃记

 

#include <iostream>

using namespace std;

int AmountPeach(int n){
    if(n==1)
        return 1;
    else
        return 2*(AmountPeach(n-1)+1);
}

int main()
{
    int day;
    while(cin>>day){
        cout << AmountPeach(day) <<endl;
    }
}
View Code

 

  例2:Number Sequence

 

#include <iostream>

using namespace std;

int f[105];

int main()
{
    int a,b, i;
    long n;
    while(cin>>a>>b>>n && a+b+n){
        f[0] = (a+b)% 7; f[1] = (a*f[0]+b)%7;
        for(i=2;i<100; i++){
            f[i]=(a*f[i-1]+b*f[i-2])%7;
            if(f[i]==f[1] && f[i-1] == f[0])
                break;
        }

        if(n<2){
            cout << 1 <<endl;
        }
        else{
            n = (n-3) % (i-1);
            cout << f[n] <<endl;
        }
    }

    return 0;
}
View Code

 

  例3:不容易系列之一

 

#include <iostream>
#include <stdio.h>

using namespace std;

long long f[25];

int main()
{
    int num;
    f[1]=0; f[2] =1;
    for(int i=3; i<=20; i++){
        f[i] = (i-1)*(f[i-1]+f[i-2]);

    }
    while(cin>>num){
        cout<<f[num]<<endl;
    }
}
View Code

 

  例4:Children’s Queue

  f[n]表示n个人的合法队列, 讨论最后一个人。
   1、最后一个人是男。则对n-1个人的队列没有任何限制,故共f[n-1];
  2、最后一个人是女。
    (1)前n-1个人的队列合法。共f[n-2];
    (2)前n-1个人的队列不合法。只有一种情况:前n-4个人的队列合法,第n-3个人为男,第n-2个人为女。共f[n-4];
  故,f[n]=f[n-1]+f[n-2]+f[n-4].
   考虑到数据比较大。故使用高精度。

 

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int numQueue[1024][305];

int main()
{
    int num, flag, k = 0;

    memset(numQueue, 0, sizeof(numQueue));
    numQueue[1][0] = 1;numQueue[2][0] = 2;numQueue[3][0]=4;numQueue[4][0] =7;
    for(int i=5; i<=1000; i++){
        for(int j=0; j<=k; j++){
            numQueue[i][j] += numQueue[i-1][j] + numQueue[i-2][j] + numQueue[i-4][j];
            numQueue[i][j+1] += numQueue[i][j]/10;
            numQueue[i][j] %= 10;
        }
        if(numQueue[i][k+1]!=0)
            k++;
    }

    while(cin >> num){
        flag = 1;
        for(int j=300; j>=0; j--){
            if( flag && numQueue[num][j] != 0 )
                flag = 0;
            if(!flag)
                cout << numQueue[num][j];

        }
        cout << endl;

    }

    return 0;
}
View Code

 

  例5:神、上帝以及老天爷

 

#include <iostream>
#include <stdio.h>

using namespace std;

long long f[25];

int main()
{
    double s;  //不能long类型,why?
    int num, t;
    f[1]=0; f[2] =1;
    for(int i=3; i<=20; i++){
        f[i] = (i-1)*(f[i-1]+f[i-2]);

    }
    cin >> t;
    while(t--){
        cin >> num;
        s=1;
        for(int i=2; i<=num; i++)
            s*= i;
        printf("%.2lf%%\n",(f[num]*1.0)/s*100);
    }
}
View Code

 

  例6:Fibonacci Again

 

#include <iostream>

using namespace std;

int f[105];

int main()
{
    int k;
    long n;

    f[0] = 7% 3; f[1] = 11 %3;
    for(int i=2;i<100; i++){
        f[i]=(f[i-1]+f[i-2])%3;
        if(f[i]==f[1] && f[i-1] == f[0]){
            k =i-1;
            break;
        }
    }
    while(cin>>n){

        if(f[n%k] ==0 )
            cout << "yes"<<endl;
        else
            cout << "no" <<endl;
    }

    return 0;
}
View Code

转载于:https://www.cnblogs.com/linspirit/articles/3850223.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
1. 智慧监狱概述 智慧监狱的建设背景基于监狱信息化的发展历程,从最初的数字化监狱到信息化监狱,最终发展到智慧监狱。智慧监狱强调管理的精细化、监管的一体化、改造的科学化以及办公的无纸化。政策上,自2017年以来,司法部连续发布了多项指导性文件,推动智慧监狱的建设。 2. 内在需求与挑战 智慧监狱的内在需求包括数据应用与共享的不足、安防系统的单一功能、IT架构的复杂性、信息安全建设的薄弱以及IT运维的人工依赖。这些挑战要求监狱系统进行改革,以实现数据的深度利用和业务的智能化。 3. 技术架构与设计 智慧监狱的技术架构包括统一门户、信息安全、综合运维、安防集成平台和大数据平台。设计上,智慧监狱采用云计算、物联网、大数据和人工智能等技术,实现资源的动态分配、业务的快速部署和安全的主动防护。 4. 数据治理与应用 监狱数据应用现状面临数据分散和共享不足的问题。智慧监狱通过构建数据共享交换体系、数据治理工具及服务,以及基于数据仓库的数据分析模型,提升了数据的利用效率和决策支持能力。 5. 安全与运维 智慧监狱的信息安全建设涵盖了大数据应用、安全管理区、业务区等多个层面,确保了数据的安全和系统的稳定运行。同时,综合运维平台的建立,实现了IT系统的统一管理和自动化运维,提高了运维效率和系统的可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值