阶乘或事实的数学符号是感叹号!。感叹号也是not许多编程语言中的常用符号。
挑战:
以包含数字和字符的字符串+ !作为输入,并输出以下内容:
感叹号前面的所有内容都应被视为数学表达式,因此2+2也应如此4。
单个感叹号之后的所有内容都应作为附件附加到其前面的内容中,因此:2+2!5应该给45,因为2+2=4,5是附件。2+2!5+5应该给410。
由于!也意味着not,事实之后不属于附件的任何东西都不应附加。因此,2+2!!5应该给4,因为5它不是附件。现在,not(not(true))==true所以2+2!!!5应该给45。2+2!!5!5+5应该给出:410,因为2+2=4,然后是阶乘和!5!5+5。第一个5不是事实,而是5+5在另一个感叹号之后,因此又是一个事实。
说明:
- 感叹号
+在任一侧都不会相邻。 - 不会
+以数字开头(5不是+5)。 - 如果这是first前面的表达式的结果,则可以选择包含前导零
!。既4和04用于输入接受输出:0+0!4
内容提要:评估每个总和(!作为分隔符)。然后丢弃出现在偶数之后的所有数字!(从字符串的开头算起)。然后全部删除!。
测试用例:
!
<- Empty string
5
5
12!
12
!87
87
!!5
<- Empty string
5+5!2+2
104
5+5!!2+2
10
1!2!3!4!5!6!7!8!9
12468
10+10!!2+2!!3+3!4+4
208
2!!3!5
25
2!!3!5!7
25
10!!!!!!!5
105
这是代码高尔夫球,因此以字节为单位(每种语言)的最短代码胜出!强烈建议您进行说明!
25(请参阅添加的测试用例)。更重要的2!!3!5!7是仍会给出25,因为的!剩余数为偶数7(因此,您不仅要计算数字前面的游程,还要计算数字的!剩余数)。
Row吗?