日期:2014-05-18 浏览次数:20775 次
private void fun(int[] arr) { int n = arr.Length; int[] i = new int[n]; for(i[0]=0; i[0]<arr[0]; i[0]++) { for(i[1]=0; i[1]<arr[1]; i[1]++) { ...// 这里该怎么写? for(i[n-1]=0; i[n-1]<arr[n-1]; i[n-1]++) { fun2(i); //这里的参数是i } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] arr = new int[] { 3, 2, 4 }; fun(arr); } static private void fun(int[] arr) { fun1(arr, null, 0); } static private void fun1(int[] arr, int[] a2, int i) { if (a2 == null) a2 = new int[arr.Length]; if (i < arr.Length) { for (int j = 0; j < arr[i]; ++j) { a2[i] = j; fun1(arr, a2,i + 1); } } else { func2(a2); } } static private void func2(int[] a2) { Console.WriteLine(string.Format("{0} {1} {2}", a2[0], a2[1], a2[2])); } } } 运行结果: 0 0 0 0 0 1 0 0 2 0 0 3 0 1 0 0 1 1 0 1 2 0 1 3 1 0 0 1 0 1 1 0 2 1 0 3 1 1 0 1 1 1 1 1 2 1 1 3 2 0 0 2 0 1 2 0 2 2 0 3 2 1 0 2 1 1 2 1 2 2 1 3 请按任意键继续. . .