C语言:基础练习,求两个整数的最大公约数

    xiaoxiao2021-03-25  74

    话不多说,直接上代码:

    方法一:循环试探

    int Gcd(size_t* a, size_t* b) { if (*a < *b) { *a = *b^*a; *b = *b^*a; *a = *b^*a; } while (*a%*b != 0&&*b>0) { *b-= 1; } return *b; }

    方法二:辗转相除法

    int Gcd(int*a, int*b) { int tmp = 0; while (*a%*b != 0) { tmp = *a%*b; *a = *b; *b = tmp; } return *b; }

    main函数

    int main() { size_t data1 = 0; size_t data2 = 0; size_t ret = 0; printf("请输入两个正整数:"); scanf("%d%d", &data1, &data2); ret=Gcd(&data1, &data2); printf("则两个数的最大公约数为:%d\n", ret); system("pause"); return 0; }

    结果:

    转载请注明原文地址: https://ju.6miu.com/read-22692.html

    最新回复(0)