[python]分数运算及表达式输出

读入4个整数a、b、c、d和一个运算符(‘+’、‘-’、‘*’、‘/’中的一个),进行分数a/b和c/d的对应运算,输出最简结果。

Standard Input

有多组测试数据。输入的第一行是整数T(1<=T<=200),表示随后测试数据的组数。每组测试数据占一行,由四个正整数a,b,c,d和一个运算符组成,相邻数据间有一个空格。

Standard Output

对应每组测试数据,输出分数运算的最简结果,占一行。具体可参照样例。

Samples

InputOutput
3
1 2 3 4 -
35 24 24 5 *
25 72 9 5 /
1/2-3/4=-1/4
35/24*24/5=7
25/72/9/5=125/648
Problem ID1891
Problem Title分数运算
Time Limit1000 ms
Memory Limit64 MiB
Output Limit64 MiB
Sourcewxiaoping - 2018.4.16

用python写很简单,所以没有思考C语言的方法。。。

实现代码如下:

from fractions import Fraction

T = int(input())
fun = []
for x in range(T):
    a1, b1, a2, b2, s = map(str, input().split())
    a = Fraction(int(a1), int(b1))
    b = Fraction(int(a2), int(b2))

    if (s == "+"):
        res = a + b
    elif (s == '-'):
        res = a - b
    elif (s == '*'):
        res = a * b
    elif (s == '/'):
        res = Fraction(a, b)
    biao = str(a1)+'/'+str(b1)+s+str(a2)+'/'+str(b2)+'='+str(res)
    fun.append(biao)
for x in range(T):
    print(fun[x])

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名为28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值