描述
给出一个矩形的长 a 和宽b ,以及对矩形期望的长宽比x:y ,要求尽量少的缩短矩形的长和宽(缩短之后的长和宽必须仍然是正整数),使得矩形的长和宽之比等于x:y ,求矩形最终的长和宽。
答案希望矩形的面积越大越好。
输入描述 (输入文件:matrix.in)
第一行:1个数T,表示测试数据的组数。
后面T行:每行包含四个整数 a,b,x,y 。
输出描述 (输出文件:matrix.out)
输出共T行,每行包含两个数,以空格隔开,表示矩形最终的长和宽。如果无法达到题目的要求则输出 0 0 。
样例输入 1
3
800 600 4 3
1920 1200 16 9
1 1 1 2
样例输出 1
800 600
1920 1080
0 0
提示
【数据范围】
1<=a,b,x,y<=2∗10⁹,1<=T<=100000。
我的代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
double n,a,b,x,y,aa,bb;
cin >> n; //次数
for (int i = 1;i <= n;i++)
{
cin >> a >> b >> x >> y; //1920 1200 16 9
int m = y / x; //长宽比值
if (b / a == m && b / a == m) cout << a << ' ' << b << endl; //已经符合要求
else if (x * 2 > a || y * 2 > b) cout << "0 0" << endl; //无法达到题目要求
else
{
// 不会写了QWQ
cout << aa << ' ' << bb << endl; //输出
}
}
}
要求使用freopen