Pascal ABC

 

ГЛАВНАЯ
ССЫЛКИ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
Очень простые

Проблема с A и B

Трамвайные билеты

Шифр Цезаря

Четные и нечетные члены последовательности

"Мы вас упакуем!"

Простые

Равновеликие прямоугольники

Скобки

 

Уравнение

 

Вирусы

 

КВН

 

Коррекция кода

 

Степень

 

Демократия в опасности

 

Пуговицы

 

A to B

 

Палиндромы

 

Почти Крэг Туми

 

Виза

 

Ездец

 
Средней сложности  

MIME64

 

Куль хацкеры

 

Редкое имя

 

Города

 

Исправления

 

Банки

 

2^n

 

Ниточка

 

Массивище

 

Знакомые

 

Считаем кораблики

Лошадью ходи!

Левые повороты

Прицельное метание помидор

Анаграммы

Треугольник

Принцип компании

Уникальная строка

Конфуз

K-ичные числа

Михаил Густокашин против бюрократии

Агенты

Игра в слова

Сложные

Диски

Домино

Монеты

Программистика

Хитрющая строка

Робот-сапер

Квадраты

Упаковка простых

Оппозиция

 

Замок

 

Многоугольники

 

Электронные часы

 

Дождик

 

Черепаха

 

Метро

 

Террористы

 

Школы

 
Очень сложные/особо интересные  

Система Защиты

 

Бизнес-классики

 

Телеметрия

 

Лесной пожар

 

Олимпиада

 

Автобусный диспетчер

 

 Кубики

 

Электронная почта

 

Автобус

 

 

 

 

ОЛИМПИАДНЫЕ ЗАДАНИЯ

Олимпиадные задачи с рекомендациями к решениям

Задача 18: Виза (ИМ-2002 СамГУ)

Жители одного государства очень любят различные математические головоломки. Даже тот, кто желает получить въездную визу, должен решить задачу: отыскать ключевое слово. Условие задачи таково:
На листке написано несколько длинных чисел. Если сложить все цифры в каждом числе, получатся новые числа. Далее, следует сложить все цифры в каждом из вновь полученных чисел. Процесс следует продолжать до тех пор, пока в результате не останутся числа, меньшие 10. После этого все просто: числа от 0 до 9 - это номера букв в алфавите (в этом государстве алфавит состоит всего из десяти букв). Замена чисел буквами и дает ключевое слово.
Напишите программу, которая будет отыскивать ключевое слово.

Формат входного файла:

Первая строка - алфавит государства: десять букв расположенных по возрастанию порядковых номеров без пробелов.
Вторая строка - количество чисел (N <= 255)
Следующие N строк - собственно исходные числа (по одному на строке, в каждом не более 255 цифр).

Формат выходного файла:

Ключевое слово

Пример:

input.txt

АГЕИКЛМОРТ
4
8267
19929
54262
000000000000

output.txt

ЛИГА

Решение:
Первый раз до конца прочитал условие, пока печатал :). Вообще наша команда всегда отличается быстрым стартом и завалом во второй части соревнований, однако это не помешало нам занять второе место в этом году :). Задача простая. Читаем в переменную string алфавит государства. Затем перед нами встает две задачи - посчитать сумму цифр в длинном и в коротком числе. Для длинного числа все просто - складывае в одну переменную val всех символов строки (длинное число удобно загнать в строку). Если получилось числе меньше 10 - то выведем соответствующую ей букву в output. Если получилось число большее 10, то его придется разделать в цикле while. Найдем сумму цифр числа (summ := summ + A mod 10; A := A div 10) и в случае если она больше 10, то присвоим числу значение суммы. При выводе символа надо помнить, что символу в строке занумерованы 1..10, а на выход будут подаваться числа 0..9, так что логично к выходному числу прибавлять 1...


Далее ð





 


 

 

 
 

СЕРВИС

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.