#include<stdio.h> #pragma warning(disable:4996) int get_max(int m, int n) { //方法1 //int i = m > n ? n : m;//选择一个小数开始遍历 //for (; i > 0;i--) //{ // if (0 == m%i && 0 == n%i) // { // return i; // } //} //方法2 辗转相减法 //while (1) //{ // if (m > n) // { // m -= n; // } // else if (m < n)//注意 if else 逻辑问题 // { // n -= m; // } // else // { // break;//‘m’=‘n’时就是m和n已经辗转相减到两个数字的公约数了; // } //} //方法3 辗转相除法 while (m*n != 0)//此处条件是为了判断m和n(m n中内容为余数)是否有零,如果有则说明余数为零有数字可以整除了。即找到公约数,跳出循环。 { if (m > n) { m %= n; } else if (m < n) { n %= m; } else { break; } } int i = m == 0 ? n : m; return i; } int main() { int m = 0; int n = 0; do{ printf("Please enter the number:\n"); scanf("%d %d", &m, &n); printf("%d\n", get_max(m, n)); } while (1); system("pause"); return 0; }
求两个数最大公约数.2
猜你喜欢
转载自blog.csdn.net/zn_wuxunian/article/details/80008292
今日推荐
周排行