zoukankan      html  css  js  c++  java
  • 数学问题-最大公约数和最小公倍数

    最大公约数

    理论

    1 递归式:gcd(a,b)=gcd(b,a%b)
    2 递归边界:gcd(a,0)=a
    注:0和任意一个整数a的最大公约数都是a

    代码

    #include <iostream>
    using namespace std;
    int gcd(int a, int b){
    	if(b==0)return a;		
    	return gcd(b, a%b);
    } 
    int main(int argc,char * argv[]){
    	int a,b;
    	scanf("%d%d",&a,&b);
    	printf("%d",gcd(a,b));
    	return 0;
    } 
    

    最小公倍数

    理论

    1 求最大公约数d
    2 最小公倍数为a/d*b
    注:
    1 因为d是最大公约数,所以a一定可以被d整除
    2 不可写为a*b/d,因为ab有可能溢出

    代码

    #include <iostream>
    using namespace std;
    int gcd(int a,int b){
    	if(b==0)return a;
    	return gcd(b, a%b);
    }
    int lcm(int a,int b){
    	return a/gcd(a,b)*b;
    } 
    int main(int argc,char * argv[]){
    	int a,b;
    	scanf("%d%d",&a,&b);
    	printf("%d",lcm(a,b));
    	return 0;
    } 
    
  • 相关阅读:
    HDU 2955 Robberies
    HDU 2546 饭卡
    poj 3628 Bookshelf 2
    poj 3624 Charm Bracelet
    celery -1
    ☀【Grunt】插件
    【MooTools】
    【Grunt】
    ↗☻【PHP与MySQL程序设计 #BOOK#】第3章 PHP基础
    【CSS】
  • 原文地址:https://www.cnblogs.com/houzm/p/13289767.html
Copyright © 2011-2022 走看看