首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何根据参数决定循环的层数

2012-08-15 
怎么根据参数决定循环的层数比如,我要实现这样的功能C# codeprivate void fun(int[] arr){int n arr.Len

怎么根据参数决定循环的层数
比如,我要实现这样的功能

C# code
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                }        }    }}

中间那个循环该怎么实现呢?

[解决办法]
C# code
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   00   0   10   0   20   0   30   1   00   1   10   1   20   1   31   0   01   0   11   0   21   0   31   1   01   1   11   1   21   1   32   0   02   0   12   0   22   0   32   1   02   1   12   1   22   1   3请按任意键继续. . . 

热点排行