通過例子進階學習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循環

程序運行后效果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM