介绍
整数的阶乘n
可以由n计算
!= Ñ × (ñ - 1 )× (ñ - 2 )× (。。。)× 2 × 1
这是相对容易的,没有什么新鲜的。但是,阶乘可以扩展为双阶乘,例如
总结:
挑战
编写一个函数,该函数将为任何非负整数计算任何种类的重复阶乘。
输入项
要么
- 字符串,包含非负十进制整数,后跟1个或多个感叹号。EG
"6!"
或"9!!"
或"40!!!!!!!!!!!!!!!!!!!!"
。
要么
- 相同的值由两个整数表示:一个非负基值和一个代表阶乘计数的正值。可以根据默认I / O规则中的任何格式完成此操作。
输出量
所述计算的结果。
挑战备注
0!
等于1
定义。您的代码必须说明这一点。- 阶乘计数受在该范围之外,则可以自由地输出任何。除了
0!
,这是该规则的唯一例外。
例子
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
尝试使用非Golf的Python实现:在线尝试!
一般说明
3!!!!!!!
不应未定义-它应该只给出答案3
。与1!!=1
(未定义)相同。同样,您的输入规范指出,将始终至少有一个!
,因此第一个示例3
不符合规范。
(3!)!
不是从阶乘中删除术语。这是一个令人误解的名字;我进来是假设它将要在链中重复应用阶乘函数,并且必须仔细阅读以了解其实际含义。幸运的是,这个问题确实能够清楚地解释它。 一个更好的名字可能是步阶阶乘或阶阶阶乘等等。
0!
了示例,但挑战性说明说阶乘计数将小于或等于基值。