# Task
 Your Informatics teacher at school likes coming up with new ways to help you understand the material. When you started studying numeral systems, he introduced his own numeral system, which he's convinced will help clarify things. His numeral system has base 26, and its digits are represented by English capital letters - `A for 0, B for 1, and so on`.

 The teacher assigned you the following numeral system exercise: given a one-digit `number`, you should find all unordered pairs of one-digit numbers whose values add up to the `number`.

# Example

 For `number = 'G'`, the output should be `["A + G", "B + F", "C + E", "D + D"]`

 Translating this into the decimal numeral system we get: number = 6, so it is `["0 + 6", "1 + 5", "2 + 4", "3 + 3"]`.

# Input/Output

 - `[input]` string(char in C#) `number`

   A character representing a correct one-digit number in the new numeral system.

   Constraints: `'A' ≤ number ≤ 'Z'.`

 - `[output]` a string array

   An array of strings in the format "letter1 + letter2", where "letter1" and "letter2" are correct one-digit numbers in the new numeral system. The strings should be sorted by "letter1".

   Note that "letter1 + letter2" and "letter2 + letter1" are equal pairs and we don't consider them to be different.

Source: codewars | Difficulty: EASY
Tags: Ad-hoc

Starter code: def new_numeral_system(number):
	

Solutions:
def new_numeral_system(n):
	a = [c for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' if c <= n]
	return ['{} + {}'.format(a[i], a[-1 - i]) for i in range((len(a) + 1) // 2)]


new_numeral_system = lambda n: ['%c + %c' % (65 + i, ord(n) - i) for i in range(ord(n) - 63 >> 1)]


def new_numeral_system(number):
	return [chr(65 + i) + ' + ' + chr(ord(number) - i) for i in range((ord(number) - 65) // 2 + 1)]


def new_numeral_system(number):
	system = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	n = system.index(number)
	return ['{} + {}'.format(system[i], system[n - i]) for i in range(n // 2 + 1)]


def new_numeral_system(number):
	chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	n = chars.index(number)
	return [f'{chars[i]} + {chars[n - i]}' for i in range(0, n // 2 + 1)]


from string import ascii_uppercase as up
from math import ceil

def new_numeral_system(num):
	n = up.index(num)
	n1 = ceil(n / 2)
	return list((f'{a} + {b}' for (a, b) in zip(up[:n1 + 1], up[n1:n + 1][::-1])))


def new_numeral_system(number):
	n = ord(number) - 65
	return [f'{chr(x + 65)} + {chr(n - x + 65)}' for x in range(0, n // 2 + 1)]


def new_numeral_system(letter):
	number = ord(letter) - 65
	half = number // 2
	return [f'{chr(i + 65)} + {chr(number - i + 65)}' for i in range(half + 1)]


def new_numeral_system(number):
	output = []
	for i in range(0, (ord(number) - ord('A')) // 2 + 1):
		output.append(chr(i + 65) + ' + ' + chr(ord(number) - i))
	return output


def new_numeral_system(s):
	n = ord(s)
	return [f'{chr(i + 65)} + {chr(n - i)}' for i in range((n - 65) // 2 + 1)]