首页 > 试题广场 >

小红有无穷无尽的小数

[编程题]小红有无穷无尽的小数
  • 热度指数:192 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}小红有无穷无尽的小数。
\hspace{15pt}小红拿到了两个无限循环小数 a,b \left(a >b\right),特别的,保证这两个小数均从小数点后第一位开始循环,她想知道 a-b 的循环节是什么,请你帮帮她。

输入描述:
\hspace{15pt}第一行输入两个整数 n, m \left( 1 \leqq n, m \leqq 100 \right),分别代表 a,b 的循环节长度。
\hspace{15pt}第二行输入一个长为 n 的整数,代表 a 的循环节。
\hspace{15pt}第三行输入一个长为 m 的整数,代表 b 的循环节。


输出描述:
\hspace{15pt}第一行输出一个整数 k\left(1 \leqq k \leqq 10^4 \right),代表循环节的长度。
\hspace{15pt}第二行输入一个长为 k 的整数,代表 a-b 的循环节。(特殊的,请保证循环节从小数点后第一位开始)

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

1 1
2
3

输出

1
8
头像 fynu24唐毅轩
发表于 2025-12-02 10:45:31
D.无穷无尽的小数 手搓两个示例,不难发现,循环节长度为;答案为这个长度的字符串减法。 构造为我们要进行加减的字符串。还要确定的点在于最后要不要再,比如循环节分别为跟的时候,最后得到的循环节为而不是,而在循环节分别为跟的时候,最后得到的循环节为。仔细观察不难发现当的时候,不需要向前借位,即不用再。而 展开全文
头像 Drink0318
发表于 2025-12-15 09:51:50
import math from math import gcd def str_to_num(s): """将循环节字符串转为整数""" return int(s) if s else 0 def fraction_t 展开全文
头像 Drink0318
发表于 2025-12-15 10:51:50
from math import gcd import sys def find_repeat(num,den,is_negative): remain_map={} #记录当前余数的首次出现位置(索引) digits = [] res=''#循环节 idx=0#索引 展开全文