我在计算Knuth 的箭头符号时遇到了问题,它是 ↑,可以在函数中找到。到目前为止我所做的是:
int arrowCount = (int)arrowNum.Value; // Part of
BigInteger a = (int)aNum.Value; // the input I
BigInteger b = (int)bNum.Value; // already have
BigInteger result = a;
BigInteger temp = a;
for(int i = 0; i < arrowCount; i++)
{
result = Power(temp, b);
temp = r;
b = a;
}
有力量
BigInteger Power(BigInteger Base, BigInteger Pow)
{
BigInteger x = Base;
for(int i = 0; i < (Pow-1); i++)
{
x *= Base;
}
return x;
}
但它的值不正确,我无法找到解决它的方法。它可以处理 1 个箭头问题,例如3↑3(即3^3 = 9),但它不能处理更多的箭头。
我需要一种方法来找出更多箭头,例如3↑↑3,
应该是7625597484987 (3^27)我得到19683 (27^3)。如果您能帮助我弄清楚如何获得正确的输出并解释我做错了什么,我将不胜感激。