#include<stdio.h>
int Exhaustion(int a, int b);//定义穷举法的函数
int main()
{
int a, b,cd;
printf("Please input two number:");
scanf_s("%d%d", &a, &b);
cd= Exhaustion( a, b);
printf("%d", cd);
return 0;
}
//穷举法
int Exhaustion(int a, int b)
{
int i,t;
t = a < b ? a : b;//t取较小值
for(i=t;i>0;i--)
if (a % i == 0 && b % i == 0)
{
return i;
break;
}
}
//欧几里得算法
#include<stdio.h>
int O(int a, int b);//欧几里得算法的函数
int main()
{
int a, b,cd;
printf("Please input two number:");
scanf_s("%d%d", &a, &b);
cd= O( a, b);
printf("%d", cd);
return 0;
}
int O(int a, int b)
{
int i,t,d,s;
s = a < b ? a : b;//确定两个数的大小
d = a > b ? a : b;
for (i = 1;; i++)
{
t = d % s;//取余
if (t ==0)
{
return s;
break;
}
else
{
d = s;
s = t;
}
}
}
//递归方法
#include<stdio.h>
int Recursion(int a, int b);
int main()
{
int a, b,cd;
printf("Please input two number:");
scanf_s("%d%d", &a, &b);
cd= Recursion( a, b);
printf("%d", cd);
return 0;
}
int Recursion(int a, int b)
{
int i,d,s;
s = a < b ? a : b;//确定两个数的大小
d = a > b ? a : b;
if (s == 0)return d;
d = d - s;
Recursion(s,d);//将较小值和两数的差返回
}
版权声明:本文为sthja原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。