public static bool PromptYesNO(string prompt)
Console.WriteLine(prompt);
string response = Console.ReadLine();
return response.Equals("yes", StringComparison.OrdinalIgnoreCase);
public static void Main()
int startingNumber = GetInput("Enter starting number: ");
GenerateHailstoneSequence(startingNumber);
if (!PromptYesNO("Generate another sequence (Yes/No): "))
int columns = GetInput("How many columns?: ");
GenerateHailstoneSequenceWithColumns(startingNumber, columns);
DisplayLargeHailstone(startingNumber);
static int GetInput(string prompt)
return int.Parse(Console.ReadLine());
static void GenerateHailstoneSequence(int startingNumber)
Console.WriteLine("hailstone Sequence: ");
while (startingNumber != 1)
Console.WriteLine(startingNumber + " ");
startingNumber = (startingNumber % 2 == 0) ? startingNumber / 2 : 3 * startingNumber + 1;
static void GenerateHailstoneSequenceWithColumns(int startingNumber, int columns)
Console.WriteLine("Hailstone Sequence with {columns} columns: ");
while (startingNumber != 1)
Console.Write(startingNumber + " ");
startingNumber = (startingNumber % 2 == 0) ? startingNumber / 2 : 3 * startingNumber + 1;
if (count % columns == 0)
static void DisplayLargeHailstone(int startingNumber)
int currentNumber = startingNumber;
int largestHailstone = currentNumber;
while (currentNumber != 1)
if (currentNumber > largestHailstone)
largestHailstone = currentNumber;
currentNumber = (currentNumber % 2 == 0) ? currentNumber / 2 : 3 * currentNumber + 1;