日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】PAT-1034 有理数四则运算

發布時間:2025/1/21 python 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】PAT-1034 有理数四则运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

2. 代碼

2.1 分析

題目本身不難。但是我前前后后花了2h以上。

題目需要處理的判斷邏輯還是比較多的。

我通過實現一個Fraction的類來完成了題目。

關于最后一個測試點,非常有可能是類似這樣的結構 。

1/2 -1/2, 這兩個分數相除,分母會出現負數,所以一定要處理妥當。

否則最后一個測試點過不了。

2.2 代碼

class Fraction():# 默認分母=1,且是正數(flag=""正數,flag="-"負數)def __init__(self, top, bottom=1):is_positive = 1if top*bottom < 0:is_positive = -1# 全都轉化成正數top, bottom = abs(top), abs(bottom)# 分子分母化簡max_factor = gcd(top, bottom)if bottom != 0:# 約分self.num = is_positive * (top//max_factor)self.den = bottom // max_factorelse:# 分母為0,分式沒有意義self.num = 0self.den = 0# 顯示數據def show(self):num, den = self.num, self.den# 判斷是否是正數is_positive = 1if num*den < 0:is_positive = -1# 全部轉化成正數num, den = abs(num), abs(den)# 分母為0if den == 0:return "Inf"# 分子為0if num == 0:return 0# 分母為1if den == 1:if is_positive == 1:return "%d" % (num)else:return "(-%d)" % (num)# 最簡化有理數int_num = num // dennum = num % denif int_num == 0:# 正負判定if is_positive != 1:return "(-%d/%d)" % (num, den)else:return "%d/%d" % (num, den)else:# 正負判定if is_positive != 1:return "(-%d %d/%d)" % (int_num, num, den)else:return "%d %d/%d" % (int_num, num, den)# 加法def __add__(self, other):# 通分x = self.num*other.den + self.den*other.numy = self.den * other.denmax_factor = gcd(abs(x), y)return Fraction(x//max_factor, y//max_factor)# 減法def __sub__(self, other):x = self.num*other.den - self.den*other.numy = self.den * other.denmax_factor = gcd(abs(x), y)return Fraction(x//max_factor, y//max_factor)# 乘法def __mul__(self, other):x = self.num * other.numy = self.den * other.denmax_factor = gcd(abs(x), y)return Fraction(x//max_factor, y//max_factor)# 對應除法( / )def __truediv__(self, other):x = self.num * other.deny = self.den * other.num# 分母為0,沒有意義,直接返回if y == 0:return Fraction(0, 0)max_factor = gcd(abs(x), abs(y))# 分子、分母 有一個是負數if (x < 0 and y >= 0) or (x >= 0 and y < 0):return Fraction(-(abs(x)//max_factor), abs(y)//max_factor)else:return Fraction(x//max_factor, y//max_factor)def gcd(x, y):# x,y 必須都是自然數if x < y:x, y = y, xwhile(y != 0):temp = xx = yy = temp % yreturn xx, y = input().split(" ") a1, b1 = tuple(map(int, x.split("/"))) a2, b2 = tuple(map(int, y.split("/")))x = Fraction(a1, b1) y = Fraction(a2, b2)print(x.show(), "+", y.show(), "=", (x+y).show()) print(x.show(), "-", y.show(), "=", (x-y).show()) print(x.show(), "*", y.show(), "=", (x*y).show()) print(x.show(), "/", y.show(), "=", (x/y).show())

3. AC截圖

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【Python】PAT-1034 有理数四则运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性工作者十日谈 | 一区二区三区四区免费视频 | 日本丰满少妇 | 国产成人无码www免费视频播放 | 波多av| 狠狠干综合 | 古代玷污糟蹋np高辣h文 | 国产中文字幕乱人伦在线观看 | 欧美三级三级三级爽爽爽 | 国产 中文 字幕 日韩 在线 | 91精彩视频在线观看 | 成人动漫一区二区三区 | 欧美性网址 | 美女啪啪免费视频 | xxxx日本免费| 日本va欧美va精品发布 | jizz中国少妇高潮出水 | 一级片99| 亚洲精品乱码久久久久久 | 17草在线 | 国产视频首页 | 自拍亚洲一区 | 国产精品人人妻人人爽人人牛 | 在线观看欧美视频 | 97成人人妻一区二区三区 | 精品人妻一区二区色欲产成人 | 一区二区三区日韩欧美 | 在线视频亚洲色图 | 91视频最新入口 | 欧美熟女一区二区 | 制服师生在线 | 欧美在线精品一区二区三区 | 99热这里精品 | 五月天婷婷网站 | 中文字幕黄色 | 夜夜看av| 国产成人免费 | 18p在线观看 | 在线观看亚洲大片短视频 | 日韩美女做爰高潮免费 | 毛片.com | 叶山小百合av一区二区 | 日本v片 | 欧美偷拍少妇精品一区 | 怡春院欧美 | 一区二区三区在线视频观看 | 在线观看成人网 | 日韩人妻无码精品久久免费 | 亚洲综合久久久 | 91在线精品观看 | 亚洲一区 中文字幕 | 亚洲午夜久久久久久久久红桃 | 国产男女猛烈无遮挡免费视频 | 欧美激情免费观看 | 四虎影库在线播放 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 亚洲福利| 九九人人| 日韩av免费网站 | 欧美大屁股熟妇bbbbbb | 黄色xxxxxx | 欧美一级在线播放 | 亚洲蜜臀av乱码久久精品蜜桃 | 四虎影院国产精品 | 精品欧美久久久 | a国产免费 | 日韩午夜激情视频 | 干成人网| 欧美一区二区三区电影 | 成人激情av | 男女洗澡互摸私密部位视频 | 成人免费视频久久 | 日韩午夜一区 | 无码人妻aⅴ一区二区三区有奶水 | 欧美三级三级三级爽爽爽 | 男同激情视频 | 欧美日韩一区二区三 | 日韩高清一区 | 熟女少妇在线视频播放 | 中文字幕狠狠干 | 久久久久久久久久久久电影 | 国产免费久久精品国产传媒 | 在线成人一区 | 国产精华7777777 | 天天艹天天 | 成年网站在线观看 | 欧美在线视频免费 | 国产综合久久久久 | 狠狠操五月天 | 99国产精品一区二区三区 | 麻豆影视在线 | 色999在线 | 亚洲码无人客一区二区三区 | 日韩欧美中文字幕在线观看 | 国产欧美日韩在线 | 亚洲国产精品麻豆 | 亚洲性图第一页 | 色一情一乱一区二区三区 | 亚洲一区电影 |