經過例子學習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循環

程序運行後效果以下:
入門

相關文章
相關標籤/搜索