- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在做一个高级计算过程(类似于计算器的科学模式)。我正在寻找可以帮助我完成项目任务的算法。这是问题所在:
举个例子10+10*2
。结果应该是 30
。所以,我面临的问题是除法和乘法应该利用 +
和 -
操作(即使没有括号)。我基本上知道如何制作一个具有基本功能的计算器,例如 10+10*2
的结果是 40
(将第一个数字放在变量中,然后将第二个数字放在另一个变量中,然后再次在第一个变量中排名第三)。在这方面,我写了一些算法,但没有一个有效。我对此的解决方案是解析整个 strng '10+10*2'
然后将它们分开以检测操作 +、-、/和 *。然后重新计算过程。但这似乎有点长,我怀疑有很多“if”条件以及谁在计算时使用字符串?
我们可以讨论任何想法。
谢谢!
附言我熟悉几种语言,因此可以制定任何解决方案。我接受各种高级语言的伪代码。我只是不熟悉算法(编程逻辑)。
最佳答案
对于您的示例,最简单的解决方案是循环遍历表达式两次。
在第一次运行中,你只做乘法/除法,不加减任何东西。在第二轮中,没有乘法/除法,因此您可以从左到右进行。
伪代码:
for (number : numbers) { //for each number in numbers in your expression
if (next operator is */){
number */= nextNumber();
removeNextOperator();
removeNextNumber();
doNotMoveFromThisNumberInNextStep(); //like decrementing index variable in classic for-cycle
}
}
现在我们只有+-的表达式了,你说你知道怎么做了
想了想,一下子就搞定了!当你找到 */时,你只需要记住你从加减得到的和。
伪代码:
int sum = 0;
for (number : numbers) { //for each number in numbers in your expression
if (next operator is */){
number */= nextNumber();
removeNextOperator();
removeNextNumber();
doNotMoveFromThisNumberInNextStep(); //like decrementing index variable in classic for-cycle
} else { //next operator is +- or the last number
sum +-= numberBefore() +- number;
}
}
关于algorithm - 计算时进行高级操作的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690343/
我正在尝试获取有关某个特定人员的最新信息,并且我正在使用类似的查询 SELECT * FROM Table WHERE Name LIKE 'Peter' ORDER BY ID DESC LIMIT
我有一个视频 View ,正在播放视频。我想停止视频并在触摸视频 View 时返回。我想我必须这样做。 videoView.setOnTouchListener(new OnTo
假设您正在为某种目的(例如数据结构)制作一个经过严格测试的相当健壮的 API。其他人将在他们自己的编码项目中下载和使用您的库,因此您希望它非常密封。 在您的 API 中,您有许多这样的函数调用: vo
想知道是否有办法可以在没有构造函数的情况下渲染组件。 下面是我的 onClick 代码。我的目标是当您单击按钮时进行渲染以使按钮消失。我不确定是否有办法在不创建的情况下渲染它 constructor
我目前正在这样做。 有更好的方法吗? public Cursor selectRostersForTeam(Activity activity, int teamId) { final Str
我们遇到了遗留代码的问题。有一个“用户名”字段的验证集,验证它的长度并确保它至少包含一个字母: @Column(name = "username") @Size(min = 4, max = 40)
所以我有一个通过 .fetch() 填充的模型,我的问题是。它要么总是 PUT,要么总是 POST,但 .save() 永远不会表现得“智能”。 该模型是通过提取填充的,如果从提取返回任何内容,它最多
到目前为止,我已经能够为 Azure Functions 设置单元测试并且效果很好。但是对于我当前的项目,我需要使用动态或命令式绑定(bind)。 https://learn.microsoft.co
我有一个很大的本地文件。我想使用 boto 库将该文件的 gzip 版本上传到 S3。该文件太大,无法在上传前将其有效地 gzip 到磁盘上,因此应在上传期间以流式方式 gzip。 boto 库知道一
我正在使用 python 的 slumber 库对服务进行 HTTP 调用。这就是它的样子。我需要对此 URL https://sample-billing-api.test/2/billing-ac
使用 manifest v2 可以正常工作。但是使用 manifest v3 我收到错误“ReferenceError: localStorage is not defined” manifest.j
我是一名优秀的程序员,十分优秀!