zoukankan      html  css  js  c++  java
  • 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人

    写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人

    题目解析:

    该题直接使用“辗转相除法”来求解最大公约数和最小公倍数

    最大公约数找出两数中的最小值,然后直接相模,当能够同时被两数整除时,则为最大公约数。

    最小公倍数找出两数中的最大值,然后直接进入死循环,直到找到一个数能够同时被两数整除时,则为最小公倍数

    【注】此题还有一些比较高级的解法,比如求最大公约数的相减法、欧几里德辗转相除法等,有兴趣的同学可以查询相关资料

    代码示例:

    #include<stdio.h>
    
    //最大公约数
    size_t GCD(size_t a, size_t b)
    {      
    	
    	size_t gcd;      
    	gcd = a > b ? b : a;
    	while(gcd > 1)  
    	{
    		if((a % gcd == 0) && (b % gcd == 0))   
    			return gcd; 
    		gcd--; 
    	}
    	return gcd;
    }
    
    //最小公倍数
    size_t LCM(size_t a, size_t b)
    {
    	size_t lcm;
    	lcm = a > b ? a : b;
    	while(1)
    	{
    		if((lcm % a==0) && (lcm % b==0))
    			break;
    		lcm++;
    	}
    	return lcm;
    }
    
    int main()
    {
    	size_t a, b, result;
    	printf("请输入两个整数:>");
    	scanf("%d %d", &a, &b);
    
    	result = GCD(a, b);
    	printf("%d和%d的最大公约数为:%d
    ", a, b, result);
    	result = LCM(a, b);
    	printf("%d和%d的最小公倍数为:%d
    ", a, b, result);
    
    	return 0;
    }
    

    运行结果:

    写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人

  • 相关阅读:
    python 统计gitlab代码量
    whistle 模拟用户网络超时
    Node.js 快速转换 url 链接
    实用的 Git 命令
    前端常用 prettier 配置 + vetur 配置
    vue 项目 eslint + prettier 配置
    lodash 方法 debounce 防连点 防抖按钮点击
    npm 包实现自动登录 CICD 流程
    git push --follow-tags 命令
    小程序 iOS webview 中网页使用 iframe 无法滚动问题
  • 原文地址:https://www.cnblogs.com/inta/p/13356679.html
Copyright © 2011-2022 走看看