Форум программистов, компьютерный форум CyberForum.ru

На сколько квадратов можно разрезать данный прямоугольник? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
germec140
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 6
11.10.2010, 20:01     На сколько квадратов можно разрезать данный прямоугольник? #1
Даны натуральные числа a и b, которые определяют стороны прямоугольника. На сколько квадратов, стороны которых выражены также натуральными числами, можно разрезать данный прямоугольник, если от него каждый раз отрезать квадрат максимальной площади.

Помогите пожалуйста решить.
Решить нужно на языке С (попрошу, если это возможно писать пояснения к вашим действиям)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2010, 20:01     На сколько квадратов можно разрезать данный прямоугольник?
Посмотрите здесь:

Подсчитать, сколько раз данный символ встречается в заданной строке C++
Можно ли данный код сделать короче? C++
C++ можно ли считать данный код реализацией очереди
C++ Определить, можно ли первый прямоугольник целиком разместить во втором
Дан прямоугольник с размерами 543x130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него? C++
C++ Сколько раз в строке встречается данный символ?
C++ Рекурсивная функция: нахождение числа квадратов, на которые можно разбить прямоугольник
C++ Прямоугольник из символов, которые ввел пользователь. Можно ли упростить условие?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Larchikst
3 / 3 / 0
Регистрация: 01.04.2010
Сообщений: 7
11.10.2010, 21:45     На сколько квадратов можно разрезать данный прямоугольник? #2
Делается рекурсией:
C
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
int recurs(int a, int b, int count){
    int widht = a, height = b;//присваиваем ширину и высоту соответствующим переменным
    if(widht > 0 && height > 0){//если ширина и высота больше нуля выполняем этот блок
                if(widht < height){//если высота > ширины
                                           return recurs(height,widht,count);//меняем их местами
                        }
                else{//иначе выполняем этот блок
                  widht-=height;//уменьшаем ширину на величину высоты
                  count++;//увеличиваем счетчик
                  return recurs(widht,height,count);//повторяем процедуру
 
                }
    }else{//если ширина или высота  = 0 - прекращаем выполнение 
        return count;// возвращаем величину счетчика
    }
 
}
 
int main()
{
    int xpr = 14, ypr = 8;//xpr - ширина прямоугольника, ypr - высота
    int count = 0, rez;//count - счетчик, rez - результат на печать
    rez = recurs(xpr,ypr,count);
    printf("%i",ii);
    return 0;
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
12.10.2010, 01:11     На сколько квадратов можно разрезать данный прямоугольник? #3
germec140, Короче, находим c = НОД(a,b)
Ответ (a*b) / (c*c)
Yandex
Объявления
12.10.2010, 01:11     На сколько квадратов можно разрезать данный прямоугольник?
Ответ Создать тему
Опции темы

Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru