-3
#!/bin/ksh
extended_gcd() 
{
  a=$1
  b=$2
  x=0;
  lastx=1;
  y=1;
  lasty=0;
  while ((b!=0));
  do
    quotient=$a/$b
    tmp3$b
    b=$(($a%$b))
    a=$tmp3
    tmp3=$x
    $x=$lastx-$quotient*$x
    $lastx=$tmp3
    tmp3=$y
    $y=$lasty-$quotient*$y
    $lasty=$tmp3
  done
  echo $lastx $lasy
}
var = $(extended_gcd $1 $2)
echo $var

嗨,大家好,

最近,我在Unix上执行以下代码时遇到了问题。我无法在这里找到语法错​​误。如果您能检查此代码并帮助我更正它,我将不胜感激。

4

1 回答 1

0

只需在调试模式下 运行脚本,-x您应该能够自己解决它。

从最初的外观来看,我看到了很多问题。当我遍历每一行时,我试图清理它,但它没有经过测试。因此,您应该能够通过在调试模式下运行它来解决它。

#!/bin/ksh -x

extended_gcd() {
        a=$1
        b=$2
        x=0;
        lastx=1;
        y=1;
        lasty=0;
        while [[ $b != 0 ]]; do
                quotient=$(($a / $b))
                tmp3=$b
                b=$(($a % $b))
                a=$tmp3
                tmp3=$x
                x=$(($lastx - $quotient * $x))
                lastx=$tmp3
                tmp3=$y
                y=$(($lasty - $quotient * $y))
                lasty=$tmp3
        done
        echo $lastx $lasty
}

extended_gcd $1 $2
于 2013-05-24T20:24:58.690 回答