• 通过例子进阶学习C++(二)最小公倍数


    本文是通过例子学习C++的第二篇,通过这个例子可以快速入门c++相关的语法。

    题目要求:输入两个整数,求其最小公倍数。

    解答方法一:两个数的最小公倍数,是这两个数中的大数,或者是这2个数的倍数中的最小数字。

    这两个数字用num1和num2存储,max表示其中最大数字。如果max能同时整除num1和num2,则max为起最小公倍数,否则max=max+1,重复该循环直到max能同时整除num1和num2。

    #include <iostream>
    using namespace std;
    int main()
    {
    	int num1,num2,max;
    	cin>>num1>>num2;
        
        //求num1和num2中的最大数字
        if(num1>num2){
            max = num1;
        }else{
            max = num2;
        }
            
        while(max %num1 !=0 || max %num2 !=0){
            max ++;
        }
        cout<<"数字"<<num1<<"和数字"<<num2<<"的最小公倍数为:"<<max;
    	return 0;
    }
    

    通过该例子,可以学习:

    • if-else语句
    • while循环

    程序运行后效果如下:

    上述求最小公倍数的方法,执行效率不高。可以改进如下:

    解答方法二:两个数的最小公倍数,一定是两个数中最大数的整数倍,可以从1倍,2倍,...直到是两个数字的倍数为止。

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int num1,num2,max,n=1,current;
    	cin>>num1>>num2;
     
        // 通过三元表达式 求num1和num2中的最大数字
        max = (num1 > num2) ? num1 : num2;
        do{
            current = max * n;
            n++;
        }while(current %num1 !=0 || current %num2 !=0);
    
        cout<<"数字"<<num1<<"和数字"<<num2<<"的最小公倍数为:"<<current;
    	return 0;
    }
    

    通过该例子,可以学习:

    • 三元表达式
    • do-while循环

    程序运行后效果如下:

    所有文章,坚持原创。如有转载,敬请标注出处。
  • 相关阅读:
    C++中派生类与基类的同名成员调用机制
    一元运算符重载
    二元运算符重载
    const修饰符在不同位置带来的效应
    C++中指针与引用的区别
    基本的查找算法
    排序算法
    指针是怎么回事
    面试总结(1)
    价值观作业
  • 原文地址:https://www.cnblogs.com/siweihz/p/12184578.html
Copyright © 2020-2023  润新知