根据屏幕的尺寸 分辨率来计算屏幕的面积
期中分辨率往往很大需要进行约分后减少后续面积的计算量
求最大公约数采用了欧几里德算法:
例如: 求102 39的最大公约数
102 = 39 * 2 + 24
39 = 24 * 1 + 15
24 = 15 * 1 + 9
15 = 9 * 1 + 6
9 = 6 * 1 + 3
6 = 3 * 2 + 0
所以最大公约数为 3
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
cout << "Hello World!\n";
cout << "请输入屏幕尺寸 长宽像素点 例如27寸2k(2k = 2560 * 1440)则输入 27 2560 1440" << endl;
cout << "输入 0 0 0 退出循环\n";
while (true)
{
double a;
int b, c;
cin >> a >> b >> c;
if (a == 0) break;
else {
//最大公约数 欧几里德算法
int n, m, x;
if (b < c) {
n = b;
b = c;
c = n;
}
n = b - c;
x = m = c % n;
while (m != 0) {
m = n % x;
n = x;
x = m;
}
//cout << "最大公约数为:" << n << endl;
b = b / n;
c = c / n;
}
double d = (double)b;
double e = (double)c;
a = a * 2.54;
double sum = pow(a * b * c, 2) / pow((pow(d,2)+pow(e,2)),2);
cout << "面积:"<<sum <<"cm^2"<< endl;
}
}