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

【已解决】用JAVA代码实现递归算法-从自然数中取3个数进行组合之递归算法-用递归算法找出 n(n>=3) 个自然数中取 3 个数的组合。

任务描述

本关任务:用递归算法找出 n(n>=3) 个自然数中取 3 个数的组合。

测试说明

平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

测试输入:5 (n=5;,表示从1,2,3,4,5自然数中选择 3 个数)

预期输出:

5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1

代码实现

package step2;
import java.util.Scanner;
public class Recursion{
   // 递归函数生成组合
    private static void findCombinations(int start, int n, int depth, int[] combination, int r) {
        // 当组合长度达到3时,打印当前组合
        if (depth == r) {
            for (int i = 0; i < r; i++) {
                System.out.print(combination[i] + " ");
            }
            System.out.println();
            return;
        }

        // 从当前开始位置选择数字,确保从大到小排列
        for (int i = start; i >= 1; i--) {
            combination[depth] = i;
            findCombinations(i - 1, n, depth + 1, combination, r);
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 读取输入的n值
        scanner.close();
        // 确保n的值符合要求
        if (n < 3) {
            System.out.println("n 应该大于等于3.");
            return;
        }
        int[] combination = new int[3];  // 存储组合的数组
        // 从n开始递归生成组合
        findCombinations(n, n, 0, combination, 3);
    }  
}

http://www.kler.cn/a/317087.html

相关文章:

  • AutoDL远程连接技巧
  • 网络技术-定义配置ACL规则的语法和命令
  • 深入探索离散 Hopfield 神经网络
  • 蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
  • 985研一学习日记 - 2024.11.14
  • 深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
  • 在云渲染中3D工程文件安全性怎么样?
  • 【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
  • Unity-Screen屏幕相关
  • 【设计模式】万字详解:深入掌握五大基础行为模式
  • 鸿蒙 OS 开发零基础快速入门教程
  • ER论文阅读-Incomplete Multimodality-Diffused Emotion Recognition
  • 【LLM学习之路】9月22日 第九天 自然语言处理
  • 计算一个矩阵的逆矩阵的方法
  • 2024ICPC网络赛第一场C. Permutation Counting 4(线性代数)
  • nginx的反向代理和负载均衡
  • 16.3 k8s容器cpu内存告警指标与资源request和limit
  • 【数据结构-栈】力扣682. 棒球比赛
  • 0-1开发自己的obsidian plugin DAY 1
  • 鸿蒙操作系统(HarmonyOS)生态与机遇
  • YOLOv10改进,YOLOv10替换主干网络为PP-HGNetV1(百度飞桨视觉团队自研,全网首发,助力涨点)
  • watch和computed的使用及区别
  • Correcting Chinese Spelling Errors with Phonetic Pre-training(ACL2021)
  • Python Web 面试题
  • Spring Boot自定义配置项
  • [leetcode刷题]面试经典150题之6轮转数字(简单)