标签:循环小数 %. gcd int qx fz 蓝桥 fm
- 我们先将循环体部分转换为真分数。
- 再通过约分和分数加法等操作完成对答案的求解。
# 求最大公约数的函数
def gcd(a,b):
if a < b:
a,b = b,a
elif a==b:
return 1
while b!=0:
temp = a % b
a = b
b = temp
return a
# 输入
p,q = map(int,input().split())
s = input()
fz = int(s[p-1:q])
fm = int("9"*(q-p+1))
# 对循环体部分约分
fz_1 = fz/gcd(fz,fm)
fm_1 = fm/gcd(fz,fm)
# 分数加法
if p==1:
print("%.0f %.0f"%(fz_1,fm_1))
else:
qx = int(s[:p-1])
fz_1 = int(fz_1)
fm_1 = int(fm_1)
fz_2 = (fz_1+qx*fm_1)/gcd(fz_1+qx*fm_1,fm_1*10**(p-1))
fm_2 = fm_1*10**(p-1)/gcd(fz_1+qx*fm_1,fm_1*10**(p-1))
print("%.0f %.0f"%(fz_2,fm_2))
标签:循环小数,%.,gcd,int,qx,fz,蓝桥,fm 来源: https://blog.csdn.net/qq_51174011/article/details/123602388
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。