一、基本要求:求N个数的最大公约数和最小公倍数。用C或C++或java或python语言实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.提供友好的输入输出,并进行输入数据的正确性验证。
第一种方法:
步骤一:输入两个数a,b。
步骤二:判断a与b的大小关系。
步骤三:判断较小的数是否能整除较大的数。
步骤四:写出不同条件下的计算公式。
步骤五:输出最大公约数divisor,最小公倍数multiple。
第二种方法:
步骤一:求两个数的公共约数。
步骤二:公共约数相乘。
步骤三:循环,两两进行比较,得出最大公约数。
步骤四:最小公倍数等于短除法所有质数相乘。
三、流程图:
求N个数的最大公约数和最小公倍数
四、调试测试:
1、调试:
第二种方法调试:求N个数的最大公约数和最小公倍数
求N个数的最大公约数和最小公倍数
2、测试:
第一种方法测试:求N个数的最大公约数和最小公倍数
第二种方法测试:求N个数的最大公约数和最小公倍数
求N个数的最大公约数和最小公倍数
五、遇到的困难及解决方法:
我先开始想的是两个数的最大公约数和最小公倍数,试图从两个数扩展到n个数。 最先思考的就是两个数最大公约数和最小公倍数的计算公式,我先在纸上写了几组数字,试图找出它们的规律,但是发现不同关系的数字a,b可以用不同的计算公式,就像如果a=b,就可以轻而易举地得出最大公约数和最小公倍数就是a(b)。然后继续细化,当a>b时,看b是否能整除a,若能,则说明最大公约数就是b,最小公倍数就是a,最最最困难的就是b不能整除a这种情况,我举了挺多的例子,然后发现其实挺简单的,最大公约数肯定不会大于较小的数b,那就从b开始循环,逐次减去1,直到找到能整除a和b的整数。a<b时同理。当我写完这部分后,我发现我扩展不到n个数,我就试着用一个大循环实现两个两个数的比较,但没有成功。与同学交流了一下,他让我换一种思路写,别纠结以前的了。然后我参考了一下别人的,写了新的代码,运用到了很普遍的短除法。

相关文章:

  • 2021-08-20
猜你喜欢
  • 2022-01-19
  • 2021-04-11
  • 2021-04-23
  • 2021-08-01
  • 2022-01-03
相关资源
相似解决方案