探究如何求两数的最大公约数(两种方法)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:zuidagongyueshu.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年4月23日 * 版本号:V1.0 * 问题描述:探究求两数最大公约数的方法 * 程序输入:32 8 * 程序输出:见运行结果 */ #include <stdio.h> //递归法 int main() { int gcd(int x,int y); int a,b,g; scanf("%d %d",&a,&b); g=gcd(a,b); printf("最大公约数是:%d",g); return 0; } int gcd(int x,int y) { if(x<=y) if(y%x==0) return(x); else return(gcd(x,y%x)); else return gcd(y,x); } #include <stdio.h> //普通法 int main() { int gcd(int x,int y); int a,b,g; scanf("%d %d",&a,&b); g=gcd(a,b); printf("最大公约数是:%d",g); return 0; } int gcd(int x,int y) { if(x>y) { int t; t=x;x=y;y=t; } int i,a; for(i=1;i<=x;i++) { if(x%i==0&&y%i==0) { a=i; } } return a; }
运行结果:
心得:
山重水复疑无路,柳暗花明又一村