算法设计:
方法一:
第一种思路是枚举(穷举法、列举法),但是枚举又可以分为两种方法。第一种,采用穷举法按从小到大(初值为1,最大值为两个整数当中较小的数)的顺序将所有满足条件的公约数列出,输出其中最大的一个;第二种,按照从大(两个整数中较小的数)到小(到最小的整数1)的顺序求出第一个能同时整除两个整数的自然数,即为所求。
代码示例如下:
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);//低版本编译器使用scanf 高版本编译器使用scanf_s
int i;
int gcd;
gcd = 1;
for(i = (a<b?a: b); i > 0; i--)
{
if(a % i == 0 && b % i == 0)
{
gcd = i;
break;
}
}
printf("gcd = %d\n", gcd);
return 0;
}
#include <stdio.h>
int Get_Max_Comm_Divisor(int num1, int num2)
{
int i = 0;
//获取两个整数的最小值
int min = num1 < num2 ? num1 : num2;
//从两个数的最小值开始递减遍历
for (i = min; i > 0; i--)
{
//i为num1和num2的公倍数
if (num1 % i == 0 && num2 % i == 0)
break;
}
return i;
}
int main()
{
int num1 = 0, num2 = 0;
puts("请输入两个正整数.");
scanf_s("%d%d", &num1, &num2);
printf("最大公约数


9万+

被折叠的 条评论
为什么被折叠?



