我正在尝试在我的TI-Nspire CX中基于this c++ version编写模块化逆函数。
到目前为止,我有以下代码:
Define LibPub modinv(a,b)=
Func
Local b0,t,q,x0,x1
0→x0
1→x1
If b=1 Then
Return 1
EndIf
While a>1
q:=((a)/(b))
t:=b
b:=mod(a,b)
a:=t
t:=x0
x0:=x1-q*x0
x1:=t
EndWhile
If x1<0 Then
x1:=x1+b0
EndIf
Return x1
EndFunc
当我运行程序时
invmod(26,3)
我收到此错误:
错误:未定义变量
当我“查看”错误时,由于光标直接移至该行,因此该行显示为有问题(我认为)。
您没有定义b0,它具有符号值。由于它是局部变量,因此您不能离开范围,即返回其中包含符号b0的x1。