public static void Main(string[] args)
var input = Console.ReadLine();
var inputNumber = int.Parse(input);
var isHappy = HappyRecursion(inputNumber);
Console.WriteLine(isHappy);
private static bool HappyRecursion(int input)
var length = GetNumberLength(input);
return SuperHappyRecursion(n, input, 0, 0);
private static bool SuperHappyRecursion(int n, int value, int sumLeft, int sumRight)
var valueLength = GetNumberLength(value);
if (valueLength > n) return SuperHappyRecursion(n, value / 10, sumLeft, sumRight + number);
if (valueLength > 1) return SuperHappyRecursion(n, value / 10, sumLeft + number, sumRight);
return sumLeft + number == sumRight;
private static int GetNumberLength(int input)