AT_hbpc_3 1=0.999...
题目描述
“1 和 0.999... 表示完全相同的实数”这一话题,在网络上经常被讨论。本题就是关于这类小数的问题。输入格式如下:
> $N$ $a_1$ $a_2$ : $a_N$
第一行给出要处理的小数的个数 $N$。接下来的 $N$ 行中,每行给出一个实数 $a_i$。$a_i$ 可以是有限小数,也可以是循环小数,所有 $a_i$ 组成实数集合 $A = \{a_i\}$。同一个实数可能以不同的形式给出。
有限小数和循环小数的格式遵循以下 BNF 规则。在循环小数中,用括号括起来的部分表示循环节,例如 `0.(01)` 表示 $0.010101...$。
```
::= "."
::= "." "(" ")"
::= "0" |
::= "" |
::=
::= "0" |
::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
```
- $1 \leq N \leq 300$
- $a_i$ 的字符串长度不超过 $300$
请你求出实数集合 $A$ 中不同元素的个数。
例如:
```
2
1.0
0.(9)
```
输出:
```
1
```
再如:
```
3
3.(142857)
3.1(428571)
3.14(285714)
```
输出:
```
1
```
输入格式
第一行包含一个整数 $N$,表示小数的个数。
接下来的 $N$ 行,每行包含一个字符串 $a_i$,表示一个有限小数或循环小数。
输出格式
输出一个整数,表示集合 $A$ 中不同实数的个数。
说明/提示
无。
由 ChatGPT 4.1 翻译