首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >奇异弦计算

奇异弦计算
EN

Code Golf用户
提问于 2014-01-05 23:28:27
回答 3查看 440关注 0票数 3

字符串以变量的形式给出。让我们称其为变量s。众所周知,该字符串看起来像一个使用+-*/的计算表达式。没有括号。

计算字符串中的表达式并将结果存储在变量r中(您可以假设它已经声明了)。所有的除法都可以在没有剩馀数的情况下进行(4-6*3/8无效,因为8不能被3除)。字符串长度不受限制。字符串不能包含0

挑战不应该给某些语言带来优势,所以我决定改变一些数学规则:

运算符优先级与数学和编程语言表达式略有不同:乘法/除法仍然高于加法/减运算。然而,如果连续存在一些乘法/除法,则从右到左执行。加法/减法是从左到右预先形成的。

示例sr

2+5-6/9*8+7 -> 2

1/3*6-6 -> 12

最短的代码(以字节为单位)获胜。

EN

回答 3

Code Golf用户

发布于 2014-01-06 00:26:16

Mathematica (41)

代码语言:javascript
运行
复制
s = "2+5-6/9*8+7";
ToExpression@StringReplace[s,"/"->"^-1 "]

2

如果我错了就纠正我

票数 6
EN

Code Golf用户

发布于 2014-01-06 06:19:20

Python 3,35

代码语言:javascript
运行
复制
r=int(eval(s.replace("/","**-1*")))

Python 3,30

如果你不害怕浮点值,试试这个。

代码语言:javascript
运行
复制
r=eval(s.replace("/","**-1*"))

它们都计算字符串s,并将结果存储在变量r中。

票数 1
EN

Code Golf用户

发布于 2014-01-05 23:45:30

GTB,6

代码语言:javascript
运行
复制
x?_)→R

6个字符和6个字节

编辑--既然原来的问题已经改变了,下面是一些臃肿的代码:

代码语言:javascript
运行
复制
@iS_,"*")\\iS_,"/$_4;I,1,l?A;)-1:s;A;,2I,1)+A;&s;A;,1I→_&x?_)→R

我认为我做得很好;我只做了63个字符;)超过1,000%的浮肿

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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