【发布时间】:2012-08-27 23:52:48
【问题描述】:
更新:
这个问题不是家庭作业。而且明显不防水... 我想讨论一下内部代表。 当然:add1000 应该加 1000。
**请本着这个问题的精神回答......制作这个防水会使这个问题无缘无故地变长...... ** 您可以击败纯十进制表示 Changing internal representation in runtime 更新 2:见
创建一个实现这个接口的类型:
interface INumber
{
void add1000();
void SetValue(decimal d);
decimal GetValue();
}
以便我在这个 for 循环中尽可能快地从 0 到 100 亿(美国十亿,所以直到 10e9)迭代:
private static void DoSomeAdding(INumber n)
{
Debug.Assert(n.GetValue()==0);
for (long i=0; i<10000000000; i += 1000)
{
n.add1000();
}
Debug.Assert(n.GetValue() == 10000000000);
}
所以你可以称它为:
DoSomeAdding(new YourNumberClass());
【问题讨论】:
-
可能是懒加载的一种做法。
-
我还是不明白这个问题是关于什么的。
-
问题是:你将如何实现内部表示?
-
你能定义最快吗?我们是在谈论运行时、内存使用、可读性、代码行数……吗?
-
运行时......................(该死的 15 个字符)
标签: c#