awk语言中最大公约数的计算

awk语言中最大公约数的计算,awk,Awk,我正试图为awk语言编写一个代码,用于计算两个自然数的最大公约数,但迄今为止我的尝试都失败了 我将感谢你的帮助 我的尝试: awk '{ a = 5, b = 10 while (a!=0 and b!=0){ if (a > b) { a = a % b } else { b = b % a} } }' print (a+b) 修复脚本中的语法和语义错误会产生: awk ' BEGIN { a = 5 b = 10 while ( (a!=0)

我正试图为awk语言编写一个代码,用于计算两个自然数的最大公约数,但迄今为止我的尝试都失败了

我将感谢你的帮助

我的尝试:

awk '{ a = 5, b = 10
while (a!=0 and b!=0){
  if (a > b) { a = a % b } 
  else { b = b % a}
 } 
}' 
print (a+b) 

修复脚本中的语法和语义错误会产生:

awk '
BEGIN {
    a = 5
    b = 10
    while ( (a!=0) && (b!=0) ) {
        if (a > b) {
            a = a % b
        }
        else {
            b = b % a
        }
    }
    print (a+b)
}
'
5

如果算法是错误的,那么谷歌搜索“两个自然数代码的最大公约数”就会产生几个例子,包括3个at。只需对其中一个(即去掉变量声明、第一个printf和scanf)进行非常小的调整,就可以在硬编码值中使用awk而不是C语法。

修复脚本中的语法和语义错误会产生:

awk '
BEGIN {
    a = 5
    b = 10
    while ( (a!=0) && (b!=0) ) {
        if (a > b) {
            a = a % b
        }
        else {
            b = b % a
        }
    }
    print (a+b)
}
'
5
如果算法是错误的,那么谷歌搜索“两个自然数代码的最大公约数”就会产生几个例子,包括3个at。只需对其中一个(即去掉变量声明、第一个printf和scanf)进行非常小的调整,就可以在硬编码值中使用awk而不是C语法。

From


您将展示您的尝试和输出,对吗?欢迎来到SO。Stack Overflow是一个面向专业和热心程序员的问答网站。我们的目标是在你的问题中添加一些你自己的代码,至少显示你自己为解决这个问题所做的研究工作。@Cyrus我的尝试:awk'{a=5,b=10,而(a!=0和b!=0){如果(a>b){a=a%b}或者{b=b%a}}打印(a+b),你将显示你的尝试和输出,对吗?欢迎这样做。Stack Overflow是一个面向专业和热心程序员的问答网站。我们的目标是在你的问题中添加一些你自己的代码,以显示至少你自己为解决这个问题所做的研究努力。@Cyrus我的尝试:awk'{a=5,b=10,而(a!=0和b!=0){if(a>b){a=a%b}else{b=b%a}}print(a+b)