题目源自: Linux C编程一站式学习的习题
欢迎拍砖~
c版
#include <stdio.h> #define N 5 #define M 5 #define IS_COMBINATION 1 int arr[N]; void printArr(void){ int j = M,i ; if(IS_COMBINATION){ for(i=0;i<M-1;i++){ if(arr[i]>arr[i+1])return; } } for(i=0;i<j;i++){ printf("%d ",arr[i]); } printf("\n"); } void swap(int i , int j){ int temp = arr[i];arr[i]=arr[j];arr[j]=temp; } void permutation(int k){ int i = N-k; if(k==N-M){ printArr(); return; } for(;i<N;i++){ swap(N-k,i); permutation(k-1); swap(N-k,i); } } int main(void){ int i = 0 ; for(;i<N;i++ ){arr[i]=i+1;} permutation(N ); return 0; }
java版
static int N = 5,M=3; static boolean IS_COMBINATION = false; static int[] arr = new int[N]; static void print(){ if(IS_COMBINATION){ for(int i=0;i<M-1; i++){ if(arr[i]>arr[i+1]){ return; } } } System.out.println(Arrays.toString(Arrays.copyOfRange(arr, 0, M))); } static void swap(int i , int j){ arr[i]=arr[j]+0*(arr[j]=arr[i]); } static void permutation(int k){ if(k==N-M){ print(); return; } for (int i = N-k; i < N; i++) { swap(i, N-k); permutation(k-1); swap(i, N-k); } } public static void main(String[] args) { for (int i = 0; i < N; i++) { arr[i]=i+1; } permutation(N); }
javascript版
var N = 5,M = 1 , IS_COMBINATION = true ; var arr = [] ; for(var i = 0 ; i<N ;i++){ arr[i]=i+1; } var print = function(){ if(IS_COMBINATION){ for(var i=0;i<M-1; i++){ if(arr[i]>arr[i+1]){ // console.log(arr); return; } } } console.log(arr.slice(0,M)); } var swap = function(i,j){ arr[i]=arr[j]+0*(arr[j]=arr[i]); } var permutation = function(k){ if(k==N-M){ print(); return; } for(var i = N-k ; i< N ; i++){ swap(N-k,i); permutation(k-1); swap(N-k,i); } } permutation(N);
相关推荐
Javascript实现组合查询 Javascript实现组合查询 Javascript实现组合查询
最近发现记忆力越来越差,所以需要记录下代码,能拿起来就用的那种。当前项目工程支持javascript和java之间相互转换,使用了url-safe(url安全)的模式。
JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 JavaScript实现随机抽奖 ...
Android实现java和javascript通信Android实现java和javascript通信
用javaSCript实现浏览器的SavaAs功能,填出文件选择Diolag对话框。 用javaSCript实现浏览器的SavaAs功能,填出文件选择Diolag对话框。
java javascript 调用cmd命令
使用Java JSP JavaScript实现多级下拉菜单.pdf
java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例java操作javaScript案例
网上使用java开发sonarqube的检测规则的文档很少,本文档较为详细描述了JavaScript扩展的开发过程。
java、javascript实现附件下载示例_.docx
JavaScript应用实例-字符串所有排列组合.js
JavaApplet与JavaScript的使用
Ajax+Servlet+Java+JavaScript实现分页,这个方法相当方便,你绝对没想到!
基于Java与JavaScript的校园二手物品交易平台设计与实现
java和js实现的部分常用校验器,包括: 1、身份证号校验; 2、电话号码校验(移动电话或者固话); 3、车牌号校验; 4、车架号VIN码校验。 具体网址:http://blog.csdn.net/jodenhe/article/details/77962753
sha md5 java和javascript加密的实现
网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...
本工具类用java实现了JavaScript escape/unescape 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到
基于Java+JavaScript+TSQL+Vue的电影购票小程序设计与实现
ActiveMQ基于Java和JavaScript的应用实例 改造ActiveMQ官方例子,用Java和JavaScript实现实时监听,收发消息