|
Счастливый билет
(Время: 1 сек. Память: 16 Мб Сложность: 12%)
Эта простая классическая задача имеет не единственное решение. Рассмотрим два решения.
Решение №1. Считаем счастливый билет в целочисленную переменную x и разобьем это число по цифрам так, чтобы первая цифра оказалась в переменной x1, вторая в x2 и т.д. до x6. После чего для того, чтобы убедиться в том, что билет счастливый достаточно сравнить значения x1+x2+x3 и x4+x5+x6. Но как так разбить число на цифры? Для этого можно воспользоваться целочисленным делением и остатком от деления. Например, последняя цифра целого числа x всегда равна x%10 (остатку от деления x на 10), а первая цифра шестизначного числа x всегда равна x/100000 (целочисленному делению х на 100000). Подумайте - почему? С помощью целочисленного деления мы можем от целого числа отбросить любое количество цифр (n цифр), разделив его на 10n целочисленно, а с помощью остатка от деления на 10 мы получаем последнюю цифру. Например, в нашем случае x3=x/1000%10.
Решение №2. Можно счастливый билет считать в строковую переменную и полагая, что в нем ровно 6 цифр работать с ними как с массивом символов. Билет будет счастливым, если сумма ASCII-кодов первых трех символов равна сумме ASCII-кодов последних трех. На самом деле вовсе не обязательно осуществлять перевод в реальные цифры. На языке Си даже не прийдется для этого использовать специальную функцию (как ord в паскале).
| |