使用非递归函数查找数字最大公约数的C程序


问题

使用非递归函数查找给定两个数的最大公约数 (GCD)。

解决方案

下面解释了如何使用非递归函数查找给定两个数的最大公约数 (GCD)。

算法

请参考下面的算法,使用非递归函数查找给定两个数的最大公约数 (GCD)。

步骤 1 − 开始

步骤 2 − 读取整数 a 和 b

步骤 3 − 调用函数 G=GCD(a,b) (步骤 6)

步骤 4 − 打印 G 值

步骤 5 − 结束

步骤 6 − 被调用的函数:GCD(a,b)

a. Initialize the i=1, j, remainder
b. Remainder=i-(i/j*j)
c. Remainder=0 return j else goto step 4
d. GCD(G,remainder) return to main program

流程图

下面是使用非递归函数查找给定两个数的最大公约数 (GCD) 的算法流程图。

示例

以下是使用非递归函数查找给定两个数的最大公约数 (GCD) 的 C 程序

#include<stdio.h>
#include<conio.h>
#include<math.h>
int gcdnonR(int i,int j){
   int rem;
   rem=i-(i/j*j);
   if(rem==0)
      return j;
   else
      gcdnonR(j,rem);
}
void main(){
   int a,b;
   printf("enter the two numbers:");
   scanf("%d%d",&a,&b);
   printf("GCD of %d",gcdnonR(a,b));
   getch();
}

输出

执行上述程序后,将产生以下结果:

enter the two numbers:10 30
GCD of 10

更新于:2021年8月31日

7K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告