private static void Main()
{
foreach (string name in GetEmployeeFirstAndLastNames())
{
Console.WriteLine(name);
}
GetKeyFromUser("\nDone! Press any key to exit...");
}
我试图使用Bailey Borwein Plouffe算法找到pi的第n位数。因为算法使用十六进制,我需要将其转换回十进制。我发现一些关于Python小提琴的代码似乎正确地做到了这一点:
def S(j, n):
k = 0
s = 0
left_sum = 0
while (k <= n):
denominator = 8k + j
numerator = pow(16, n-k, denominator)
left_sum = (left_sum + (numerator / denominator)) % 1.0
k += 1
right_sum = 0
k = n + 1
newt = 0
while 1:
numerator = pow(16, n-k)
denominator = 8k + j
check = numerator / denominator
right_sum = newt + check
if right_sum == check:
break
else:
newt = right_sum
k += 1
result = left_sum + (right_sum % 1.0)
return result
def pi(n):
n -= 1
x = (4*S(1, n) - 2*S(4, n) - S(5, n) - S(6, n)) % 1.0
有人可以解释这个退货声明在做什么吗?谢谢。
答案 0 :(得分:0)
这不会转换为十进制。如果有的话,它会将十进制值转换为十六进制字符串。
这是string formatting,通常用于输出。格式规范位于%
分隔符之前的左侧;价值在右边。
值:x * 16**14
为x
,左移14位十六进制数字。
格式:%...x
指定无符号十六进制。
014
指定最少14列,零填充。
结果字符串将返回给调用程序。
要转换为十进制,您需要
16
更改为10
。如果您遇到问题,可以发布编码问题。在这种情况下,请按照创建此帐户时的建议阅读并遵循帮助文档中的发布准则。 Minimal, complete, verifiable example适用于此处。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您 我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。