Я создал программу для решения формулы {f (y) = area / y}, которая вычисляет высоту и ширину [X и Y] прямоугольника, чтобы он имел определенную площадь, и в то же время,высота и ширина имеют определенное соотношение между ними {1.0539435519260202716443150560307}.
программа применяет диапазон чисел [Xmin, Xmax] к формуле для Y и выводит Y, X и соотношение X / Y водна строка, и цикл увеличивает число, которое будет применяться «шагом» каждый раз, когда цикл заканчивается.
, поэтому проблема заключается в том, чтобы найти наиболее точное соотношение (ближайшее к тому, которое янужно), мне нужно сделать шаг слишком маленьким, но это дает мне тысячи результатов, которые я не могу найти вручную, поэтому я хотел, чтобы программа печатала только те строки, которые имеют отношение, по крайней мере, включающеечисла {1,053}, так что я уверен, что это слишком близко к исходному отношению, которое я хочу, я попытался найти много, но, кажется, все доступные методы длятолько звонит, так что кто-то может предложить мне обходной путь / логику или даже совершенно другой способ сделать это?Кроме того, я пробовал язык vb.net, но он тот же, он применяется только к строкам.
Вот код: -
(Объявление переменной не было выделено в stackoverflow, поэтомуя удалил его, но я установил «двойной» тип данных для четырех переменных).
cout << "Enter Area" << endl;
cin >> area;
cout << "Enter Xmin" << endl;
cin >> Xmin;
cout << "Enter Xmax" << endl;
cin >> Xmax;
cout << "Enter Step" << endl;
cin >> step;
double x, y, multi, ratio;
for (double i = Xmin; i <= Xmax; i += step)
{
x = i;
y = area / x;
multi = x * y;
ratio = x / y;
cout << "y = " << y << " X = " << x << " Ratio = " << ratio << endl;
}
system("pause");
И нет никакого способа для этого, есть ли другой язык программирования, который поддерживает эту простую задачу?