Задача взята с сайта e-olymp.com.
Условие
Степенью симметрии натурального числа назовём количество пар его десятичных цифр, в которых цифры совпадают и расположены симметрично относительно середины десятичной записи этого числа. Если некоторая цифра стоит посередине десятичной записи, её тоже нужно учитывать в паре с ней самой. Найти степень симметрии числа $n$.
Входные данные
Одно натуральное число $n < 2 * 20^9$.
Выходные данные
Вывести степень симметрии числа $n$.
Тесты:
| Ввод | Вывод | 
| $123322$ | $2$ | 
| $100$ | $1$ | 
| $1010$ | $0$ | 
| $1234321$ | $4$ | 
| $1234567891$ | $1$ | 
Код на Haxe:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package; import cpp.Lib; class Main  { 	static function main()  	{ 		var n:Int = Std.parseInt(Sys.stdin().readLine()); 		var i:Int = 0; 		var count = 0; 		var num = []; 		if (n == 0) { 			num.push(0); 		} else { 			while (n > 0) { 				num.push(n % 10); 				n = Math.floor(n / 10); 			} 		} 		var j:Int = num.length - 1; 		while (i <= j) { 			if (num[i] == num[j]) { 				count++; 			} 			i++; 			j--; 		} 		Sys.stdout().writeString("" + count + "\n"); 	} } | 
Ход решения:
Вначале считываем число. Затем раскладываем его по цифрам внутри массива (в обратном порядке, но для нашей задачи порядок цифр значения не имеет):
| 13 14 15 16 17 18 19 20 | if (n == 0) { 	num.push(0); } else { 	while (n > 0) { 		num.push(n % 10); 		n = Math.floor(n / 10); 	} } | 
Затем подсчитываем собственно степень симметрии, двигаясь внутри массива от крайних цифр к центру, а после выводим результат:
| 21 22 23 24 25 26 27 28 29 | var j:Int = num.length - 1; while (i <= j) { 	if (num[i] == num[j]) { 		count++; 	} 	i++; 	j--; } Sys.stdout().writeString("" + count + "\n"); | 
Ссылки:
Рабочий код для тестирования на try.haxe.org: Try Haxe !
- e-olimp 3966. An ardent collector of butterflies - 13.06.2017
- e-olymp 1078. The line degree - 12.06.2017
- A704 - 11.06.2017
 
						
Да, но здесь это, возможно, не слишком удобно, так как исходная переменная n изменяется внутри того же цикла.