从数列1,2,3.......n 中 随意取几个数,使其和等于 m

时间:2023-03-09 17:06:51
从数列1,2,3.......n 中 随意取几个数,使其和等于 m

//从数列1,2,3.......n 中 随意取几个数,使其和等于 m
  
        public static void Print(int n, int m, List<int> list = null)
        {
            if (n < 1 || m < 1)
            {
                return;
            }

for (int i = 1; i <= n; i++)
            {
                if (i < m)
                {
                    List<int> childList = new List<int>();

if (list != null)
                    {
                        childList.AddRange(list);
                    }
                    childList.Add(i);

Print(i - 1, m - i, childList);
                }
                else if (i == m)
                {
                    if (list != null)
                    {
                        foreach (int j in list)
                        {
                            Console.Write("{0} + ", j);
                        }

Console.WriteLine("{0}", m);
                    }
                }
            }
        }