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

【已解决】用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.mrgr.cn/news/34690.html

相关文章:

  • 匈牙利算法详解与实现
  • 如何使用GLib的单向链表GSList
  • 【leetcode】环形链表、最长公共前缀
  • 注册建造师执业工程规模标准(市政公用工程)
  • 计算机毕业设计Hadoop+PySpark深圳共享单车预测系统 PyHive 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习
  • Linux 压缩制定目录下指定类型的多个文件
  • YOLO V10简单使用
  • 0-1开发自己的obsidian plugin DAY 1
  • C++的哲学思想
  • iOS 顶级神器,巨魔录音机更新2.1正式版
  • 一看就会!PS2024下载安装教程详解
  • 在 Java 中,你如何实现不可变对象?不可变对象有哪些好处?
  • 【Godot4.3】三角形类
  • JS的链判断符有几种写法,有哪些用法?
  • # 深度学习笔记(9)huggingface 构建数据集
  • kubernetes网络(三)之bird的路由反射器的使用
  • 大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践
  • npm、yarn、pnpm 最新国内镜像源设置和常见问题解决
  • Axure精选各类组件案例集锦:设计灵感与实战技巧
  • 速盾:网页游戏部署高防服务器有什么优势?