【发布时间】:2010-10-04 18:23:17
【问题描述】:
假设我有一个int x = 54897、旧数字索引(基于 0)和该数字的新值。获取新值的最快方法是什么?
例子
x = 54897
index = 3
value = 2
y = f(x, index, value) // => 54827
编辑:最快,我绝对是指更快的性能。没有字符串处理。
【问题讨论】:
-
那么,您的索引从左到右计数(从最重要到最不重要?)
-
我认为我们可以假设基数为 10?
-
嗯,转换为字符串,交换数字,然后转换回整数是我所知道的最快的 code 方法,但有些事情告诉我这不是你的'正在寻找...
-
@Adam:哪些测试让您确定在这种情况下字符串处理的性能不能令人满意?我问是因为,很可能,下一个遇到您提出的任何解决方案的开发人员可能会对您非常不满。这对个人教育来说很好,但不要在没有充分理由的情况下将其放入软件中。
-
这是不是语言无关的。解决方案将取决于它是否被解释(以及如何解释)、它是否在 VM 上运行(哪个)以及它是否被编译(哪个架构)。这可能在某种程度上取决于所有这些。
标签: algorithm language-agnostic number-theory