当前位置: 首页 > news >正文

OJ刷题 第十八篇(递归篇)

34101 - 全排列问题(目前遇到最难的一个递归)

时间限制 : 1 秒

内存限制 : 128 MB

输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入

n(1≤n≤9)

输出

由 1~n 组成的所有不重复的数字序列,每行一个序列。(每个数字占5位输出)

样例
输入
3
输出
    1    2    3 1    3    2 2    1    3 2    3    1 3    1    2 3    2    1

答案;

#include <iostream>
#include<stdio.h>
using namespace std;
#define maxn 15
int digit[maxn], temp[maxn];
bool judge[maxn];inline void sequence(int cnt,int n)
{int i;if (cnt == n){for (i = 0; i < n; i++){printf("%5d", temp[i]);}cout << endl;}for (i = 0; i < n; i++){if (judge[i] == 0){judge[i] = 1;temp[cnt] = digit[i];sequence(cnt + 1,n);judge[i] = 0;}}
}int main()
{int n;cin >> n;for (int i = 0; i < n; i++){digit[i] = i + 1;}sequence(0,n);return 0;
}

分析:这个题目难度很大,不是说全排列难,很是写出全排列这个递归很难。而且是保证从小到大的顺序。

34102 - 组合问题

时间限制 : 1 秒

内存限制 : 128 MB

排列与组合是常用的数学方法,其中组合就是从 n 个元素中抽出 r 个元素(不分顺序且 r<=n),我们可以简单地将 n 个元素理解为自然数 1,2,…,n,从中任取 r 个数。 现要求你用递归的方法输出所有组合。 例如 n=5,r=3,所有组合为:

  • 1 2 3
  • 1 2 4
  • 1 2 5
  • 1 3 4
  • 1 3 5
  • 1 4 5
  • 2 3 4
  • 2 3 5
  • 2 4 5
  • 3 4 5
输入

一行两个自然数 n、r。(1<n<21,1<=r<=n)。

输出

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。(每个数字占3位输出)

样例
输入
5 3
输出
  1   2   3 1   2   4 1   2   5 1   3   41   3   5 1   4   5 2   3   4 2   3   5 2   4   5 3   4   5

http://www.lryc.cn/news/208137.html

相关文章:

  • 互联网产品说明书指南,附撰写流程与方法
  • 从JVM方面解释java传递问题
  • Oracle查询用户所有表的语句
  • Python轮廓追踪【OpenCV形态学操作】
  • 安全狗安装
  • HTTP发起请求与收到响应的大致过程
  • c++继承的小细节
  • 【分享】7-Zip压缩包的密码可以取消吗?
  • learning rate
  • 小型气象站数据采集网关准确监测雨量和风速
  • C++常见容器实现原理
  • Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数
  • 使用Linux JumpServer 堡垒机进行远程访问
  • postgresql14管理(五)-tablespace
  • Echarts-3D柱状图
  • vue中组件传值 引用页面与组件页面绑定参数 vue省市地区街道级联选择组件
  • componentDidMount只执行一次的解决方法
  • React之diff原理
  • ElasticSearch中关于Nasted嵌套查询的介绍:生动案例,通俗易懂,彻底吸收
  • 系列二、Spring的优缺点是什么
  • ESP32网络开发实例-HTTP-GET请求
  • PHP:json_encode和json_decode用法
  • Kafka-Java二:Spring配置kafka消息发送端的缓冲区
  • 【ArcGIS模型构建器】05:批量为多个矢量数据添加相同的字段
  • 坤坤的悲伤生活
  • 职业技术认证:《研发效能(DevOps)工程师》——开启职业发展新篇章
  • gin 框架出现runtime error: index out of range [0] with length 0
  • 【高阶数据结构】B树
  • Android-Framework 应用间跳转时,提供 Android Broadcast 通知
  • 【Javascript】函数返回值的作用