1-n,从中选择任意两两不同的k个数,输出所有可能的组合,要求不重不漏

參考:http://blog.csdn.net/hyq666888/article/details/22572695



	/**
	 * 给定n个数{1,2,3,...,n},从中选择任意两两不同的k个数,输出所有可能的组合
	 * 要求不重不漏
	 * 
	 * 思路:
	 * 假如說n=9 k=5的話。
	 * 那最後一個輸出的數字肯定是 5 6 7 8 9
	 * 而且每一輪輸出的最終數字都在 5 6 7 8 9 中
	 * 例如第一輪輸出的 12345-12349 中的9 就在 5 6 7 8 9 中。
	 * 
	 * 所以我們可以每次輸出后,用當前輸出的數字去與 56789中對應的位置去比較,如果相等的話,就說明此輪輸出完畢
	 * 然後就倒退一位繼續比較。倒退后,如果加1 的話,那後面的幾位也要對應的發生改變 如 12789-》13456 其中 456 3個位置就發生了改變
	 * 
	 * 最後如果第一位等於n-k+1的話,輸出就結束了。
	 * 
	 * 參考:http://blog.csdn.net/hyq666888/article/details/22572695
	 * */
	private static void fun1(int n, int k) {
		int arr[]=new int[k];
		int index[]=new int[k];
		
		for(int i=0;i=0;i--){
				if(arr[i]


你可能感兴趣的:(算法作业)