- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在寻找兑换货币问题的良好解决方案时遇到了问题。我花了一整天的时间思考这个问题,想出适合所有情况的任何优雅而快速的解决方案。
声明:
我们有一些汇率,例如...
此费率不是真实的,并且可能每天更改一次。利率的数量可能与世界上的货币一样多(大约 150 种)。
我们被要求将一定数量的钱从任何一种货币转换成另一种货币,我们应该给出答案(如果可以的话)给定汇率。
最好的情况是如果您直接兑换(出现在列表中),在最坏的情况下您应该在中间汇率中跳很多次。
注意:给定欧元兑美元,您可以假设美元兑欧元是相反的。
我希望问题很清楚。
有什么想法吗??
最佳答案
构造一个加权有向图,每个顶点都标有货币名称。如果您有货币 A 到 B 的汇率,请添加以汇率作为权重的边 (A,B)。
如果您有 (A,B) 边但没有 (B,A) 边,请添加权重为 1 除以 (A,B) 权重的 (B,A) 边。
要将货币 C 转换为 D,请应用最短路径算法来找到从 C 的顶点到 D 的顶点的权重最低的路径。如果没有这样的路径,则无法进行转换。参见 directed graph with non-negative weights .
============================================= ========================================
这不一定会找到最佳汇率,因为汇率成倍增加。可以通过使用汇率的对数作为边权,并使用可以处理负边权的最短路径算法来找到最佳汇率。
要找到交换次数最少的交换路径,请为与直接交换匹配的每条边赋予权重 1。
关于java - 货币兑换算法(Android/Java/伪代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601213/
为了实现促销代码,我执行了以下步骤: 在 Google Play Console>User Acquisition>Promotions 我添加了促销 Activity 在应用程序中,我使用它来将用户
我希望能够生成链接,允许我的 iOS 应用程序的用户兑换应用程序内购买的促销代码。因此,他们可能会收到一封带有“兑换代码”按钮的电子邮件,该按钮会将他们带到应用商店兑换页面,其中预填充了代码,或者为他
从最近的版本和下面的对话来看,它说现在 Katana(4.1.0) 支持代码流和自动代码赎回(这意味着我们没有明确调用 tokenendpoint 来赎回 idtoken、accesstoken 等的
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我是一名优秀的程序员,十分优秀!