本文是通过例子学习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循环

程序运行后效果如下:

通过例子学习C++(二)最小公倍数-LMLPHP

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

解答方法二:两个数的最小公倍数,一定是两个数中最大数的整数倍,可以从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++(二)最小公倍数-LMLPHP

05-11 21:55