实现算法语法错误

时间:2013-05-24 20:05:10

标签: shell unix

#!/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上执行以下代码时遇到问题。我无法在这里找到语法错​​误。如果您能查看此代码并帮我纠正,我将非常感激。

1 个答案:

答案 0 :(得分: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