最近,我的声誉是25,121
。我注意到每个数字分组(即用逗号分隔的数字)都是一个完美的正方形。
您的挑战是,给定一个非负整数Ñ和一元布尔黑匣子功能 ˚F:ž * → 乙,如果每个值产生truthy值˚F施加到的数字分组Ñ是truthy,和falsey否则。
您可以通过从右侧开始将数字分成3组来找到数字分组。最左边的组可以有1位,2位或3位数字。一些例子:
12398123 -> 12,398,123 (3 digit groupings)
10 -> 10 (1 digit grouping)
23045 -> 23,045 (2 digit groupings)
100000001 -> 100,000,001 (3 digit groupings)
1337 -> 1,337 (2 digit groupings)
0 -> 0 (1 digit grouping)
附加规则
- 此函数可以映射到布尔值(例如
true
和false
),1
s和0
s或任何true / falsey值。请指定您的答案支持的格式。 - 您可以采用整数作为输入,也可以采用整数字符串(即由数字组成的字符串)。
- 您可以编写程序或函数。
- 将数字组传递给函数f时,应修剪所有不必要的前导零。例如,当f应用于N = 123,000时,应将其作为f(123)和f(0)执行。
测试用例
函数符号是n -> f(n)
,例如,n -> n == 0
。所有运算符均采用整数算术。(例如sqrt(3) == 1
)
function f
integer N
boolean result
n -> n == n
1230192
true
n -> n != n
42
false
n -> n > 400
420000
false
n -> n > 0
0
false
n -> n -> 0
1
true
n -> sqrt(n) ** 2 == n
25121
true
n -> sqrt(n) ** 2 == n
4101
false
n -> mod(n, 2) == 0
2902414
true
n -> n % 10 > max(digits(n / 10))
10239120
false
n -> n % 10 > max(digits(n / 10))
123456789
true
n -> n > 0
应用于0
),因为大多数答案都失败了。
[0]
。