题面
难度:☆☆☆☆(普及+/提高)
知识点:数论,数学
题目描述
给出一矩形长 a 和宽 b,给出长宽比 x:y,要求缩短矩形的长和宽,使它的长和宽之比等于 x:y,试求最大的长宽。
输入格式
a,b,x,y
输出格式
输出最大的长宽。如果无法缩短则输出 0 0。
思路
这一题别看难度很大,其实写起来很简单。
为什么要取最小值?因为要求最大的长宽,但是保证不能超过原来的数,所以取最小值。
需要注意的是a和b需要化简!(即化成最简比)否则在#6就会WA了。
int d=__gcd(a,b);
a=a/d;
b=b/d;
只要数学好的人就会理解。其他的人可能需要慢慢消化。
AC代码
#include<iostream>
#include<algorithm>//为了调用函数__gcd()
using namespace std;
int main(){
long