Pascal ABC

 

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

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

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

Шифр Цезаря

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

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

Простые

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

Скобки

 

Уравнение

 

Вирусы

 

КВН

 

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

 

Степень

 

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

 

Пуговицы

 

A to B

 

Палиндромы

 

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

 

Виза

 

Ездец

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

MIME64

 

Куль хацкеры

 

Редкое имя

 

Города

 

Исправления

 

Банки

 

2^n

 

Ниточка

 

Массивище

 

Знакомые

 

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

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

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

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

Анаграммы

Треугольник

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

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

Конфуз

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

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

Агенты

Игра в слова

Сложные

Диски

Домино

Монеты

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

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

Робот-сапер

Квадраты

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

Оппозиция

 

Замок

 

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

 

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

 

Дождик

 

Черепаха

 

Метро

 

Террористы

 

Школы

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

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

 

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

 

Телеметрия

 

Лесной пожар

 

Олимпиада

 

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

 

 Кубики

 

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

 

Автобус

 

 

 

 

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

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

Задача 17: Почти Крэг Туми (DOOI)

Составить программу, которая будет находить, на сколько квадратов, стороны котоых выражены натуральными числами, можно разрезать данный прямоугольник, если от него каждый раз отрезается квадрат максимально большой площади.
Формат входных данных:
Входной файл input.txt состоит из одной строки, содержащей два натуральных числа - стороны прямоугольника.
Формат выходных данных:
Выходной файл output.txt содержит одно число - количество квадратов

input.txt:
3 4
6 4
output.txt:
3

Решение:
А вам слабо решить эту задачу с листом бумаги, ножницами, без компьютера и с завязанными глазами? А сделать тоже самое без ножниц и с компьютером?! Мне слабо.
Обозначим стороны прямоугольника за A и B. Сделаем так, чтобы A было больше B (например с помощью процедуры swap, как в задаче 1. Теперь заведем переменную C, в которой будет храниться количество квадратиков. Будем повторять следующие действия пока одна из сторон (B) не станет равна 0:
1) B меньше чем A, следовательно надо откромсать сколько можем квадратов B*B от прямоугольника A*B. Т.е. C := C + A div B;
2) Вычислим размеры останков прямоугольника: A := A mod B (не смогли отрезать).
3) swap(A, B)!!!!!
Все!


Далее ð





 


 

 

 
 

СЕРВИС

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