首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数学不上数学课

数学不上数学课
EN

Code Golf用户
提问于 2016-02-12 11:36:38
回答 2查看 307关注 0票数 -1

您将收到一个带有数字的输入和一个中间有空格的字符串。字符串告诉您需要对数字做什么,它可以是:

平方根数

平方数平方

立方体-立方数

abs -数字绝对值

四舍五入的数字

您需要用所有的数据输出计算的最终结果。如果您的语言没有输入,您可以在其中进行硬编码。

规则:

你不能使用数学库,即使它是内置的.

在你的语言中,你不会得到比最高的数字或结果更大的数字或结果。

由于上述规则的漏洞,您不能使用只支持1位数的语言。(1和0)

如果您的语言不支持非整数,则需要输出圆整结果。

测试用例

16平方米=4

25平方英里= 625

3立方= 27

-10个abs =10个

18.38轮= 18轮

因为这是一个代码-高尔夫,最短的答案以字节为单位获胜。

祝好运!

EN

回答 2

Code Golf用户

发布于 2016-02-12 14:08:13

ES6 -124个字节

代码语言:javascript
复制
(a,b)=>eval('_=>'+'{for(c=1;c*c<a;c++);return c}_a*a_a*a*a_a<0?-a:a_a.toFixed()'.split`_`['tresd'.indexOf(b[b.length-1])])()

平方根只适用于四舍五入的数字。15平方米将产生4,我希望这是允许的。重写一个功能齐全的平方根函数感觉有点过火。

解释

代码语言:javascript
复制
(a,b)=> // anonymous function
    eval(
        '_=>' + // construct an anonymous function to eval
        '{for(c=1;c*c<a;c++);return c} // sqrt
        _ // seperator
        a*a // sqr
        _
        a*a*a // cube
        _
        a<0?-a:a // abs
        _
        a.toFixed()' // round
        .split`_` // create an array of functions
        [ // select the function to use
            'tresd'.indexOf(b[b.length-1]) // get index of input
        ]
    )() // end eval and call the returned function

欢迎高尔夫球小贴士

测试用例:

代码语言:javascript
复制
f=
(a,b)=>eval('_=>'+'{for(c=1;c*c<a;c++);return c}_a*a_a*a*a_a<0?-a:a_a.toFixed()'.split`_`['tresd'.indexOf(b[b.length-1])])()

F=(a,b)=>document.body.innerHTML+='<pre>'+a+', '+b+':\n'+f(a,b)+'\n</pre>';

F(16,'sqrt')
F(25,'sqr')
F(3,'cube')
F(-10,'abs')
F(18.38,'round')
票数 1
EN

Code Golf用户

发布于 2016-02-12 16:12:18

Python2,153个字节

代码语言:javascript
复制
S=str.split;x,f=S(raw_input())
exec'print '+dict(zip('tresd',S('[a for a in range(x)if a*a==x][0]|x*x|x**3|abs(x)|round(x)','|')))[f[-1]].replace('x',x)
票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/71806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档