题解 | 仰望水面的歪

仰望水面的歪

https://www.nowcoder.com/practice/69f00fb8b2004e039097c57b43c33b90?tpId=37&tags=&title=&difficulty=3&judgeStatus=0&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37

#include <iostream>
using namespace std;
//计算机科学的尽头是数学
//计算最大公约数
long long gcd(long long a,long long b){
    if(b==0)return a;
    else return gcd(b,a%b);
}
int main() {
    int n;
    long long h;
    while (cin >> n >> h) { // 注意 while 处理多个 case
    long long x,y,z;
        while(n--){
            cin>>x>>y>>z;
            //坐标关于水面对称的点高是2*h-z,x和y坐标都相等
            long long max=gcd(gcd(x,y),2*h-z);
            cout<<x/max<<" "<<y/max<<" "<<(2*h-z)/max<<endl;
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

#转行#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务