【算法笔记题解】《算法笔记知识点记录》第四章——算法初步3——递归

简介: 【算法笔记题解】《算法笔记知识点记录》第四章——算法初步3——递归

全文目录

🍕4.3小节——算法初步->递归

问题 A: 吃糖果

问题 B: 数列

问题 C: 神奇的口袋

问题 D: 八皇后

🍕4.3小节——算法初步->递归

地址合集:《算法笔记》4.3小节——算法初步->递归


问题 A: 吃糖果

斐波那契数列的变种题i形,直接写就好了。


#include <cstdio>
int F(int n){
    if(n == 0 || n == 1)    return 1;
    return F(n - 1) + F(n - 2);
}
int main(){
    int n;
    while(scanf("%d", &n) != EOF){
        printf("%d\n",F(n));
    }
    return 0;
}


问题 B: 数列

不能每次都算这个东西,所以利用了非递归的写法,直接存数组了。


#include <cstdio>
int F[20];
int main(){
    F[0] = 0, F[1] = 1;
    for(int i = 2;i < 20; i++)
        F[i] = F[i-1] + F[i-2]; //先打个表0.0
    int m,n;
    if(scanf("%d", &m) != EOF){
        while(m--){
            if(scanf("%d", &n) == EOF)  break;
            for(int i = 0;i < n;++i){
                for(int j = 0;j < n - 1 - i;++j)    printf("  ");   //输出格式
                for(int j = 0;j < 2 * i + 1;++j){
                    printf("%d",F[j]);
                    if(j != 2 * i ) printf(" ");
                    else printf("\n");
                }
            }
        }
    }
    return 0;
}


问题 C: 神奇的口袋

这个其实就是递归的思想,每个元素可以有或者没有,递归出口就是如果所有的都取完了或者大于等于要求的值。

#include <cstdio>
int nums[21], n, count, sum;//全局变量用于参数传递
void find(int k){
    if(sum == 40)  {
        count++;
        return;
    }
    else if(sum > 40)   return;
    if(k < n){
        sum += nums[k];//有这个元素
        find(k + 1);
        sum -= nums[k];
        find(k + 1);//无这个元素
    }
    return;
}
int main(){
    while(scanf("%d", &n) != EOF){
        for(int i = 0;i < n;++i)    scanf("%d", nums + i);
        count = 0,sum  = 0;
        find(0);
        printf("%d\n",count);
    }
    return 0;
}


问题 D: 八皇后

其实本身例题给的就是按照顺序返回的,所以我们用一个数组保存结果,然后直接输出就好了0.0


#include <cstdio>
#include <cstring>
#include <cmath>
int ans[92][8] = {0}, hashTable[9] = {0}, n = 8,ansnum = 0,P[8] = {0};
void generateP(int index){
  if(index == n){
  memcpy(ans[ansnum++], P, sizeof(P));//最终的结果保存
  return;
  }
  for(int x = 1; x<= n;x++){
  if(hashTable[x] == false){
    bool flag = true;
    for(int pre = 0; pre < index;++pre){
    if(abs(index - pre) == abs(x - P[pre])){
      flag = false;
      break;
    }
    }
    if(flag){   //回溯法
    P[index] = x;
    hashTable[x] = true;
    generateP(index+1);
    hashTable[x] = false;
    }
  }
  }
}
int main(){
    generateP(0);//打表打表
    int m, n;
    if(scanf("%d", &m) != EOF){
        while(m--){
            scanf("%d",&n);
            for(int i = 0;i < 8;++i)    printf("%d", ans[n - 1][i]);
            puts("");
        }
    }
    return 0;
}




相关文章
|
3月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
81 2
|
4月前
|
算法 API 计算机视觉
人脸识别笔记(一):通过yuface调包(参数量54K更快更小更准的算法) 来实现人脸识别
本文介绍了YuNet系列人脸检测算法的优化和使用,包括YuNet-s和YuNet-n,以及通过yuface库和onnx在不同场景下实现人脸检测的方法。
138 1
|
4月前
|
算法
❤️算法笔记❤️-(每日一刷-160、相交链表)
❤️算法笔记❤️-(每日一刷-160、相交链表)
33 1
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
109 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
4月前
|
存储 算法
动态规划算法学习一:DP的重要知识点、矩阵连乘算法
这篇文章是关于动态规划算法中矩阵连乘问题的详解,包括问题描述、最优子结构、重叠子问题、递归方法、备忘录方法和动态规划算法设计的步骤。
250 0
|
4月前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
39 0
|
4月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
47 0
|
4月前
|
算法
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
54 0
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。

热门文章

最新文章