


def       _a			(				SCREAMING_SNAKE_CASE						,    SCREAMING_SNAKE_CASE					):


		"""simple docstring"""




		lowercase__						=				1  # To kept the Calculated Value
		# Since C(n, k) = C(n, n-k)
		if k > (n - k):
				lowercase__						=				n - k
		# Calculate C(n,k)
		for i in range(SCREAMING_SNAKE_CASE					):
				result *= n - i
				result //= i + 1
		return result
def       _a			(				SCREAMING_SNAKE_CASE					):


		"""simple docstring"""




		return binomial_coefficient(2 * node_count						,    SCREAMING_SNAKE_CASE					) // (node_count + 1)
def       _a			(				SCREAMING_SNAKE_CASE					):


		"""simple docstring"""




		if n < 0:
				raise ValueError('''factorial() not defined for negative values'''					)
		lowercase__						=				1
		for i in range(1						,    n + 1					):
				result *= i
		return result
def       _a			(				SCREAMING_SNAKE_CASE					):


		"""simple docstring"""




		return catalan_number(SCREAMING_SNAKE_CASE					) * factorial(SCREAMING_SNAKE_CASE					)


if __name__ == "__main__":
		lowerCAmelCase	=							int(input('Enter the number of nodes: ').strip() or 0)
		if node_count <= 0:
				raise ValueError('We need some nodes to work with.')
		print(
		    f"""Given {node_count} nodes, there are {binary_tree_count(node_count)} """
		    f"""binary trees and {catalan_number(node_count)} binary search trees."""
		)






def       _a			(				SCREAMING_SNAKE_CASE						,    SCREAMING_SNAKE_CASE					):


		"""simple docstring"""




		return base * power(SCREAMING_SNAKE_CASE						,    (exponent - 1)					) if exponent else 1


if __name__ == "__main__":
			print('Raise base to the power of exponent using recursion...')
			lowerCAmelCase	=							int(input('Enter the base: ').strip())
			lowerCAmelCase	=							int(input('Enter the exponent: ').strip())
			lowerCAmelCase	=							power(base, abs(exponent))
			if exponent < 0:  # power() does not properly deal w/ negative exponents
						lowerCAmelCase	=							1 / result
			print(f"""{base} to the power of {exponent} is {result}""")


