📅  最后修改于: 2023-12-03 15:29:13.379000             🧑  作者: Mango
本节练习旨在帮助程序员熟练掌握C++中的数据结构和算法知识,进一步提升编码能力。通过完成本节练习,程序员可以学会如何使用函数嵌套实现数据处理,以及掌握C++中的循环嵌套语法。
本练习需要掌握以下知识点:
练习5.2中要求我们设计一个程序,由用户输入两个正整数A和B,然后计算A和B的最小公倍数和最大公因数,最后输出结果。
本题需要通过程序计算两个数的最小公倍数和最大公因数,因此需要使用函数来实现计算。
程序的主要流程如下:
// 1. 定义输入两个数的函数
// 2. 定义计算最大公因数的函数
// 3. 定义计算最小公倍数的函数
// 4. 主程序流程,调用输入函数,计算最小公倍数和最大公因数,输出结果。
以下为完整的C++代码实现:
#include<iostream>
using namespace std;
//函数声明
int calcMaxCommDivisor(int, int); //计算最大公因数
int calcMinCommMultiple(int, int); //计算最小公倍数
void inputNumbers(int*, int*); //输入两个正整数
int main()
{
int num1, num2, maxCommDivisor, minCommMultiple;
inputNumbers(&num1, &num2); //输入两个正整数
maxCommDivisor = calcMaxCommDivisor(num1, num2); //计算最大公约数
minCommMultiple = calcMinCommMultiple(num1, num2); //计算最小公倍数
//输出结果
cout << "两个数的最小公倍数为:" << minCommMultiple << endl;
cout << "两个数的最大公因数为:" << maxCommDivisor << endl;
return 0;
}
//输入两个正整数
void inputNumbers(int* a, int* b)
{
cout << "请输入第1个正整数:";
cin >> *a;
cout << "请输入第2个正整数:";
cin >> *b;
}
//计算最大公约数
int calcMaxCommDivisor(int a, int b)
{
int temp;
while (a%b != 0)
{
temp = a % b;
a = b;
b = temp;
}
return b;
}
//计算最小公倍数
int calcMinCommMultiple(int a, int b)
{
return a*b / calcMaxCommDivisor(a, b);
}
程序输出示例:
请输入第1个正整数:5
请输入第2个正整数:7
两个数的最小公倍数为:35
两个数的最大公因数为:1
通过本章练习,我们了解了C++中函数嵌套实现数据处理的用法,以及C++中循环嵌套语句的用法,并且理解了算法设计与实现的重要性。在实际工作中,程序员认真学习此练习中的知识点,对于提升编程能力会有很大的帮助。