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 翻译