在Code Review中受到我们竞争对手朋友的这个问题的启发。
定义
甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}
是一个超级数组,因为
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
是不是一个超级阵列,因为
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}
是一个超级数组,但它也是一个双精度数组,因为
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
挑战
编写将数组作为您的语言本机列表格式的输入的函数或程序,并确定数组的超级大小。您还可以选择接受数组长度输入(对于C / C ++之类的语言)。另外,您可以假设列表中的所有数字都是大于0的整数。如果它是一个超级数组,则必须打印。It's a super array!
如果它是一个超级duper数组,则必须打印It's a super duper array!
。一个数组也可能是duper-非超级。例如,{1, 2, 3}
在这种情况下,您应该打印It's a duper array!
如果数组既不是超级也不是duper,则可以打印一个伪造的值。
像往常一样,这是代码高尔夫球,因此存在标准漏洞,而最短的答案以字节为单位。
{1, 2, 3}
阵列的意思是“ duper-non-super” 吗?
2 * 1
等于3
在我的头上。
super[space][space]array
允许的话,我仍然可以节省更多。