Java组合算法
2024-09-05 20:10:53
这是一个简单的问题,大一刚学编程的时候做的笔记。
打印出从1、2、3……n中取出r个数的不同组合(n>=r>=1)
例如n=3,r=2,输出:
1,2
2,3
下面是实现的代码:
public class Combination { public static void combine(int[] list, int k, int l, int r, int n) {
if (k + l > n + 1)
return;
if (l == 0) {
for (int i = 0; i < r; i++)
System.out.print(list[i] + " ");
System.out.println();
return;
}
list[r - l] = k;
combine(list, k + 1, l - 1, r, n);
if (k + l <= n)
combine(list, k + 1, l, r, n);
} public static void main(String[] args) throws NumberFormatException{
int n = 5;
int r = 3;
int[] list = new int[r];
int k = 1;
int l = r;
Combination.combine(list, k, l, r, n);
}
}
当时真的是不知道变量命名规范啊,都用一个字母来表示……而且没有写一个注释。等我有空再来研究一下这个程序,再做解释。
最新文章
- Devexpress DateEdit控件的值不反馈到数据源的处理方式。
- JEFF BANKS_百度百科
- linux 安装MySql 5.7.21 操作步骤
- XAMPP环境访问非Web DocumentRoot下绝对路径
- 大数据 -->; Kafka集群搭建
- Android 5.0新控件——TextInputLayout
- Java(4)switch选择结构
- flink--DateSet开发--简单入门
- Java中对数组的操作
- Java 初始 多态
- Tools (StExBar vs Cmder)which can switch to command line window on context menu in windows OS
- python日期与时间
- (转) AdversarialNetsPapers
- 有用的java工具
- 批处理(bat)命令学习的一些总结
- mongodb shell警告
- u盘作为git仓库,完成不同地方的代码同步
- 【matlab】MTATLAB解线性方程组
- python学习(五)--打印错误信息
- Win10上部署Apollo配置中心