使用非递归函数查找数字最大公约数的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
广告