本文是通過例子學習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循環
程序運行后效果如下: