PAT 乙级 1034
本题最关键就是要思路清晰的写函数函数只是处理分子和分母把 分子/分母 写回正确的模式。还有要注意所有的整数定义都要写 long longscanf 要写 %lld在最开始定义 a b 的时候也要这么写因为在后面的传参部分如果一开始定义 a b 是 int 型那在传参计算过程中就会算成 int 型根本不能进行 long long 类型的计算。#includebits/stdc.h using namespace std; string func(long long m, long long n) { string result; long long gcd1 gcd(abs(m), abs(n)); if(n 0) return Inf; else if(m 0) return 0; else if((m 0 n 0) || (m 0 n 0)) result (-; long long m1 abs(m / gcd1); long long n1 abs(n / gcd1); if(m1 / n1 ! 0) { result to_string(m1 / n1); if(m1 % n1 ! 0) { result ; result to_string(m1 % n1); result /; result to_string(n1); } } else { result to_string(m1); result /; result to_string(n1); } if((m 0 n 0) || (m 0 n 0)) result ); return result; } int main() { long long int a1, b1, a2, b2; scanf(%lld/%lld %lld/%lld, a1, b1, a2, b2); cout func(a1, b1) func(a2, b2) func(a1*b2a2*b1, b1*b2) endl; cout func(a1, b1) - func(a2, b2) func(a1*b2-a2*b1, b1*b2) endl; cout func(a1, b1) * func(a2, b2) func(a1*a2, b1*b2) endl; cout func(a1, b1) / func(a2, b2) func(a1*b2, a2*b1) endl; return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2416573.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!