经过例子学习C++(二)最小公倍数

本文是经过例子学习C++的第二篇,经过这个例子能够快速入门c++相关的语法。ios

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

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

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

#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;
}

经过该例子,能够学习:3d

  • if-else语句
  • while循环

程序运行后效果以下:
code

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

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

#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;
}

经过该例子,能够学习:io

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

程序运行后效果以下:
入门

相关文章
相关标签/搜索