Олимпиады по информатике (ХМАО - Югра)

   
 
Югорский НИИ ИТ, Югорский ФМЛ
Логин:   Пароль:    
 
   
 
Новости
О проекте
Регистрация
Гостевая книга
Форум
Архив задач
Состояние системы
Олимпиады
Работа в системе
Рейтинг
Новичкам
Методическое пособие
Дистанционное обучение
Дистрибутивы
Ссылки

















Счастливый билет

(Время: 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 в паскале).

[Все попытки] [Задача]


 
     
Югорский НИИ ИТ, Югорский ФМЛ