C++ Как разбить прямоугольник на минимальное количество квадратов
Как вывести массив который будет выводить прямоугольник разбитый на минимальное количество квадратов. Начал писать, но как сделать не пойму.
#include <iostream>
using namespace std;
int triang[100][100];
int main()
{
setlocale(LC_ALL, "russian");
int Counter_One = 0, Counter_Two = 0, countW = 1, Heigth = 0, Heigth0 = 0, Area = 0;
int kallbomja = 0, zzz = 0, xxx = 0, CountStart = 0, CounterSqr = 0, Width = 0, Width0 = 0;
bool Signal = 0;
cout << "Введите длину прямоугольника : "; cin >> Width;
cout << "Введите ширину прямоугольника : "; cin >> Heigth;
int chush = Width - Heigth;
Area = Width * Heigth;
double AreaOst = Area;
Width0 = Width;
Heigth0 = Heigth;
while (Width0 != 0 && Heigth0 != 0)
{
CounterSqr++;
if (Width0 >= Heigth0)
{
Width0 = Width0 - Heigth0;
Signal = true;
}
else
{
Heigth0 = Heigth0 - Width0;
Signal = false;
}
if (Signal == true)
{
for (int Counter_One = zzz; Counter_One < Heigth0; Counter_One++)
for (int Counter_Two = xxx; Counter_Two < Heigth0; Counter_Two++)
{
zzz++;
xxx++;
triang[Counter_One][Counter_Two] = CounterSqr;
}
}
else
{
for (int Counter_One = zzz; Counter_One < Width0; Counter_One++)
for (int Counter_Two = xxx; Counter_Two < Width0; Counter_Two++)
{
zzz++;
xxx++;
triang[Counter_One][Counter_Two] = CounterSqr;
}
}
}
for (int i = 0; i < 11; i++)
{
for (int j = 0; j < 11; j++)
{
if (triang[i][j] == 1)
cout << 1 << " ";
if (triang[i][j] == 2)
cout << 2 << " ";
if (triang[i][j] == 3)
cout << 3 << " ";
if (triang[i][j] == 4)
cout << 4 << " ";
if (triang[i][j] == 5)
cout << 5 << " ";
if (triang[i][j] == 6)
cout << 6 << " ";
}
cout << endl;
}
return 0;
}