C++扬帆远航——14(求两个数的最大公约数)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:gongyueshu.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年3月6日 * 版本号:V1.0 * 问题描述:输入两个数,求其最大公约数 * 程序输入:无 * 程序输出:见运行结果 */ #include <iostream> using namespace std; int main() { int gcd(int x,int y); int a,b,g; cin>>a>>b; g=gcd(a,b); cout<<"最大公约数是:"<<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 (y,x); }
运行结果:
思维拓展:
求四个数的最大公约数
#include <iostream> using namespace std; int main() { int gcds(int a,int b,int c,int d); int gcd(int x,int y); int a,b,c,d,g; cin>>a>>b>>c>>d; g=gcd(a,b); cout<<"最大公约数是:"<<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 (y,x); } int gcds(int a,int b,int c,int d) { int m,n; n=gcd(a,b); m=gcd(c,d); return (gcd(n,m)); }