C语言 求两个数的最大公约数 (算法)--辗转相减法、辗转相除法
2016-09-28 17:34
288 查看
辗转相减法、辗转相除法
--------求两个数的最大公约数
思路1:用辗转相减法
#include<stdio.h> int main() { int a = 0; int b = 0; printf("please Enter 2 datas:"); scanf("%d %d",&a,&b); while(1) { if(a>b) { a = a-b;//将两个数的差值赋给最大的一个 } else if(a<b) { b = b-a; } else { printf("%d\n",b); break;//跳出整个循环 } } return 0; }
思路 2:辗转相减法
#include<stdio.h> int main() { int a = 0;//a、b都是某个数的整数倍 int b = 0; printf("please Enter2 datas:"); scanf("%d %d",&a,&b); while(a*b!=0),//a或者b不能为0 { if(a>b) { a = a%b;//将余数赋给最大值,其余数某个数的整数倍 } else { b = b%a; } printf("%d\n",a = 0?b:a); return 0; } }
其他思路:由最大公约数的性质
#include<stdio.h> int main() { int a,b,m; printf("请输入两个数\n"); scanf("%d%d",&a,&b); for(m=a; ; m--) { if(a%m==0 && b%m==0) break; } printf("%d\n",m); return 0; }还有多种思路,下去可以拓展
相关文章推荐
- c语言经典题算法1--用辗转相除法求两个数的最大公约数
- 常见算法:C语言求最小公倍数和最大公约数 辗转相除法
- C语言求两个数的最大公约数的三种算法
- 用三种方法(辗转相除法,相减法,穷举法)求两个数的最大公约数,仅供参考。
- C语言进阶之路------函数调用之辗转相除法求两个数的最小公倍数和最大公约数
- 欧几里德算法(辗转相处算法:最大公约数算法)
- 世界上最早的算法:辗转相除法(求两个自然数最大公约数)
- 世界上最早的算法:辗转相除法(求两个自然数最大公约数)
- 求两个整数的最大公约数的各种算法(C语言实现)
- 世界上最早的算法:辗转相除法(求两个自然数最大公约数) 推荐
- [算法小练习]求两个数的最大公约数
- 两个数的最大公约数------欧几里德算法(辗转相除法)
- 算法.数学.初级.求最大公约数--辗转相除法,powerbuilder powerscript实现
- 辗转相除法求最大公约数---C语言
- 【每天学点算法题10.15】求两个数的最大公约数
- 算法之 求两个数的最大公约数 C++实现
- 每天一道编程题----------------辗转相除法求两个数的最大公约数及其证明
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 辗转相除法求两个数的最大公约数
- 求两个整数的最大公约数的各种算法(C语言实现)