RQNOJ系统遇到了一个程序错误。

您可以通过邮件support (at) rqnoj.cn与我们进行联系。请附错误参考编号:1330287

[梦幻之城]之一:梦幻之城 - 题库 - RQNOJ
PID684 / [梦幻之城]之一:梦幻之城
题目描述

2014年7月13日,SCABH计划去梦幻之城,那里可是仙境哦。这天清晨,他高高兴兴地来到梦幻之城,准备痛痛快快玩一天。可是,刚进门就被一个仙女守卫守着。她说:“想来不是不行,但要过一个数学关。”SCABH想,他数学还不错,于是爽快地答应了。

仙女问:“你知道C语言吧?”“知道。”SCABH回答。

“你知道C整数表达式何时为真?”“当且仅当关系表达式成立或数值表达式的结果不为零。”

“那就好了。”“不要拐弯抹角,直接切入正题吧。”

“好。这个问题涉及到梦幻表达式。”“什么叫梦幻表达式?”

仙女说,定义如下:

1、梦幻表达式是仅由整数和运算符以及括号组成的。

运算符包括:

+(加号)、-(减号)、*(乘号)、/(整除,相当于PASCAL的DIV)、==(等号,PASCAL使用者较难理解,呵呵~)和新增的运算符=-(负等号,与等号的语法地位相同,当且仅当负等号两边的表达式互为相反数时成立)。

并且符合C语言语法。

2、除了单独一个数外,没有其他正负号。如不允许-(1+2)。单独一个数的正负号不属于运算符,包含在数中。

3、表达式最后一步运算可以是+、-、==或=-,但不能是*或/。

4、表达式的结果必须为真。

5、只能有1个等号和负等号,如(1==1)==(1==1)和(1==1)=-(-1)不合法。如果有等号或负等号,它必须作为最后一步运算。

6、(1+2)+3和1+(2+3)被视作不同的梦幻表达式,因为运算顺序不同。

7、(1+2)+3和1+2+3被视作同一个梦幻表达式,因为运算顺序相同。

“哦,明白了。”SCABH答道。

“那么好,等下仙盘托出,里面有N个整数(2<=N<=60)排成一个有序的数列,不能变换顺序,求在里面添加运算符(不能使用直接连接,如给出1,2,3不存在类如12+3这样的表达式)共可以组成多少个不同的梦幻表达式。”

“这……”SCABH懵了。本来他的数学还不错,但想着今天的惊喜,他沉迷得算不出了。

这个仙女还是善良的,她说:“算了,回答不出不要紧,你拨打这个电话就可以得出答案了。这可是高人的电话哦!”

突然,你的电话响了,原来你就是那个高人。那么,电脑前的你能帮他解答吗?

样例说明:

由1、2、3共可组成16个梦幻表达式,分别如下:

1、1+2+3

2、1+(2+3)

3、1+2*3

4、1+2/3

5、1-2+3

6、1-(2+3)

7、1-2-3

8、1-(2-3)

9、1+2*3

10、1-2/3

11、1*2+3

12、1*2-3

13、1/2+3

14、1/2-3

15、1+2==3

16、1=-2-3

输入格式

第1行:N,整数的个数。

第2至N+1行:这N个整数,它们在-2^31至+2^31-1范围内。

输出格式

第1行:梦幻表达式的个数。

样例输入
样例输出
提交题目 Error [ 更改语言 ] Language
C C++ Pascal Python2
相关讨论
查看更多讨论
发布新讨论 讨论