Ошибка в незнании математики и какой-то мутной работе со строками, которые тут нафиг не уперлись. Вот зачем ты превращаешь введенную строку в число, а потом опять в строку, в чем глубинный смысл всего этого мельтешения?
Код на C#, раз уж вопрос в категории C#:
int n = int.Parse(Console.ReadLine());
int DigitCount = (int)(Math.Log10(n) + 1);
int LeftDivisor = Enumerable.Range(1, DigitCount - 1).Aggregate(1, (x, y) => x *= 10);
int Left = 0;
int Right = 0;
for (int i = 0; i <= DigitCount >> 1; i++)
{
Left += n / LeftDivisor;
Right += n % 10;
n = n % LeftDivisor / 10;
LeftDivisor /= 100;
}
Console.WriteLine(Right == Left);
Дано целое положительное число N. Если оно является сбалансированным, то выведи 1, иначе 0.
Ввод: 123321; Вывод 1. Ввод: 13531; Вывод 1; Ввод: 1231; Вывод 0; Ввод: 101; Вывод 1.
n=int(input())
n1_list=str(n)
sum1=0
sum2=0
for i in range(0,len(n1_list)//2):
sum1=sum1+int(n1_list[i])
for i in range(len(n1_list)//2,len(n1_list)):
sum2=sum2+int(n1_list[i])
if sum1==sum2:
print(1)
else:
print(0)