首页 > 其他分享 >递归

递归

时间:2023-09-21 19:01:00浏览次数:25  
标签:10 arr 递归 int namespace include

1.全排列递归

 1 #include<iostream>
 2 using namespace std;
 3 int n, arr[10], ifuse[10] = { 0,0,0,0,0,0,0,0,0,0 };
 4 void p()
 5 {
 6     for (int k = 1; k <= n; k++)
 7     {
 8         cout << arr[k] << " ";
 9     }cout << endl;
10 }
11 void f(int set)
12 {
13     if (set > n)return;
14     for (int i = 1; i <= n; i++)//每个位置上遍历1~n 
15     {
16         if (ifuse[i] == 0)
17         {
18             arr[set] = i;
19             ifuse[i] = 1;
20             f(set +1);
21         }
22         else continue;
23         if (set == n)p();
24         ifuse[i] = 0;
25     }
26 }
27 int main()
28 {
29     cin >> n;
30     f(1);
31 }

2.组合型递归

从1~m个数里选出n个数进行排列;

 

 1 #include<iostream>
 2 using namespace std;
 3 int m, n, arr[10];
 4 //一行一行的输出
 5 void p()
 6 {
 7     for (int k = 0; k < n; k++)
 8     {
 9         cout << arr[k] << " ";
10     }cout << endl;
11 }
12 //第i个位置最小值是j 
13 void f(int i, int j)
14 {
15     if (i >= n)return;
16     for (int a = j; a <= m - n + i + 1; a++)
17     {
18         arr[i] = a;
19         //        cout<<arr[i]<<" ";
20         f(i + 1, a + 1);
21         if (i == n - 1) p();
22     }
23 }
24 int main()
25 {
26     cin >> m >> n;
27     f(0, 1);
28 }

 

3.指数型递归

 

 1 //指数型递归
 2 #include<iostream>
 3 using namespace std;
 4 int n, arr[10];
 5 void p(int i)
 6 {
 7     for (int k = 0; k <= i; k++)
 8     {
 9         cout << arr[k] << " ";
10     }cout << endl;
11 }
12 //第i个位置的最小值是j
13 void f(int i, int j, int n)
14 {
15     if (j > n)return;
16     for (int a = j; a <= n; a++)
17     {
18         arr[i] = a;
19         p(i);
20         f(i + 1, a + 1, n);
21     }
22 }
23 int main()
24 {
25     cin >> n;
26     f(0, 1, n);
27 }

 

标签:10,arr,递归,int,namespace,include
From: https://www.cnblogs.com/hello-205112/p/17715941.html

相关文章

  • PHP多层级菜单树形结构递归处理
    如题:一、数据库菜单数据表使用图片中id和parent_id两个参数来关联父子关系二、将数据库中的数据变成树状多层级解构```{ "id":1, "parentId":0, "treePath":"0", "name":"系统管理", "type":2, "path":"/system",......
  • 可变参数与递归
    可变参数上章说到方法重载,对于不同数量(输入的参数类型不一致会报错)的参数我们可以通过方法重载的方式来解决,如果参数数量具有很强的不确定性,我们不可能写n个方法来一个一个定义,因此可变参数诞生了在方法声明中在指定参数类型后加一个省略号(...)如:int...i但是要注意的是一个方......
  • Java学习之路-method--递归
    packagecom.chao.method;//递归/*概念:递归就是A方法调用A方法,就是自己调用自己递归包括两个部分:递归头:什么时候不调用自身方法,如果没有头,将陷入死循环;递归体:什么时候需要用自身方法*/publicclassDemo04{publicstaticvoidmain(String[]args){System.out.prin......
  • 递归例题 力扣39 组合总数
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一......
  • chmod递归设置文件夹和文件权限的正确用法
    如果要分别设置文件夹和文件的权限,建议先设置全部目录和文件为600或644首先cd到你要设置权限的文件夹第1种情况:只有自己能读写,其他人无权访问(隐私文件)的话,就是用600chmod-R600.chmod-Ru+X. 第2种情况:只有自己能读写,其他人只读(共享文件)的话,就是用644chmod-R644......
  • SQLServer递归触发器在KES中的一次改造分析
    文章概要:某项目将数据从SQLSERVER迁移到KES。其中SQLSERVER中触发器用到了TRIGGER_NESTLEVEL()函数,KES并不能直接支持该函数。起初在分析该问题时想复杂了本文做了一次记录。实际上在kes兼容sqlsevrer基础语法,直接简单使用SYS_TRIGGER_DEPTH()替换TRIGGER_NESTLEVEL()函......
  • python递归求阶乘和
    一些基本概念介绍:阶乘:是指从1到n的连续自然数相乘的积。负数没有阶乘。递归:函数作为一种代码封装,除了被其他程序正常调用外,还可以被函数内部代码调用。函数定义中调用函数自身的方式称为递归。递归实现的两个关键点:(1)存在一个或多个基例,基例不需要再次递归,它是确定的表达式。否则......
  • java递归算法
    当解决问题时,递归是一种常用而强大的算法技术。在Java中,递归是指方法调用自身的过程。它可以用于解决许多问题,特别是与算法和数据结构有关的问题。在本博客中,我们将详细介绍Java中的递归算法,并提供一些具体的代码示例。什么是递归?递归的基本概念和特点递归是指方法在其定义中......
  • 递归求和
    //递归求1-100的和#include<stdio.h>intsum(intn){ if(1==n) { return1; }else{ returnn+sum(n-1); }}intmain(){ intn; printf("你需要求前多少个数的和呢\n"); scanf("%d",&n); intcount;......
  • 递归求阶层
    #include<stdio.h>intf(intn){ if(n==1) { return1; }else{ returnn*f(n-1); } }intmain(){ //求n的阶层 intn; printf("你需要求哪个数的阶层呢?\n"); scanf("%d",&n); intres; res=f(n); print......