Сколько из прямоугольника можно вырезать квадратов - C (СИ)
Формулировка задачи:
Работа ведется на языке Си в среде Visual Studio 2013
Дан прямоугольник со сторонами a,b. Сколько из такого прямоугольника можно вырезать квадратов, если известно что с каждым разом квадрат увеличивается (т. е. одинаковых быть не может). Количество квадратов вывести на консоль
Решение задачи: «Сколько из прямоугольника можно вырезать квадратов»
textual
Листинг программы
#include <stdio.h> int main() { int a, b, min1, max1, max2, min2, square, count; puts("Input the length and width of the rectangle:"); do{ if(2 == scanf("%d%d", &a, &b)) break; getchar(); puts("Error input!Try again."); }while(1); min1 = a >= b ? b : a; max1 = min1 == a ? b : a; square = min1; while(max1 - square < square - 1) --square; count = square; while(count > 1){ square = count; max2 = max1; min2 = min1; while(square > 0 && min2 >= 0){ if(square == 1){ printf("Quantity squares is %d\n", count); return 0; } if(max2 >= square){ max2 -= square; --square; } else{ min2 -= square + 1; if(min2 >= square){ max2 = max1; max2 -= square; --square; } } } --count; } return 0; }
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод длины и ширины прямоугольника.
- Если пользователь вводит некорректные данные, программа выводит сообщение об ошибке и просит ввести данные заново.
- Переменная
min1
получает минимальное значение из двух: длины прямоугольника или его ширины. - Переменная
max1
получает максимальное значение из двух: длины прямоугольника или его ширины. - Переменная
square
инициализируется значением минимальной стороны прямоугольника. - В цикле while происходит вычисление наибольшей стороны квадрата, который можно вырезать из прямоугольника.
- Переменная
count
инициализируется значением количества квадратов, которые можно вырезать из прямоугольника. - В цикле while происходит вычисление количества квадратов, которые можно вырезать из прямоугольника.
- Если количество квадратов больше 1, то происходит смещение всех сторон на единицу.
- Цикл while повторяется до тех пор, пока количество квадратов больше 1.
- Выводится сообщение о количестве вырезанных квадратов.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д