using System.Collections.Generic;
public static void Main()
private static void PrintNames(int n)
Console.WriteLine(n + " has names:");
foreach (var name in GetNames(n))
private static IEnumerable<string> GetNames(int n)
var names = new List<string>();
for (var i = n; i > 0; i--)
var subNames = GetNames(left);
foreach (var subName in subNames)
names.Add(i.ToString() + "+" + subName);