生活随笔
收集整理的這篇文章主要介紹了
【PAT乙级】1034 有理数四则运算 (20 分)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目地址
#include<bits/stdc++.h>
using namespace std
;
typedef long long int LL
;
LL
gcd(LL a
,LL b
)
{if(b
==0) return a
;else return gcd(b
,a
%b
);
}
LL a
,b
,c
,d
;
void print(LL a
,LL b
)
{if(b
==0) {cout
<<"Inf"; return ;}if(a
==0) {cout
<<"0"; return;}int sign
=1; if(a
*1.0/b
<0) sign
=-1; a
=labs(a
),b
=labs(b
); LL k
=a
/b
; LL temp
=gcd(a
,b
);a
=a
/temp
,b
=b
/temp
; a
=a
-k
*b
; if(sign
<0) cout
<<"(";if(k
){if(a
) printf("%lld %lld/%lld",sign
*k
,a
,b
);else printf("%lld",sign
*k
);} else printf("%lld/%lld",sign
*a
,b
);if(sign
<0) cout
<<")";
}
int main(void)
{scanf("%lld/%lld %lld/%lld",&a
,&b
,&c
,&d
);print(a
,b
),printf(" + "),print(c
,d
),printf(" = "),print(a
*d
+b
*c
,b
*d
); puts("");print(a
,b
),printf(" - "),print(c
,d
),printf(" = "),print(a
*d
-b
*c
,b
*d
); puts("");print(a
,b
),printf(" * "),print(c
,d
),printf(" = "),print(a
*c
,b
*d
); puts("");print(a
,b
),printf(" / "),print(c
,d
),printf(" = "),print(a
*d
,b
*c
); puts("");return 0;
}
總結(jié)
以上是生活随笔為你收集整理的【PAT乙级】1034 有理数四则运算 (20 分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。