分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
题目
解决代码及点评
- <code class="language-cpp">/*
- 求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
- */
- #include <iostream>
- using namespace std;
- int Gcd(int a, int b)
- {
- if (a < b)
- {
- swap(a, b);
- }
- if (b == 0)
- {
- return a;
- }
- else
- {
- return Gcd(b, a%b);
- }
- }
- int lcm(int a, int b)
- {
- return a*b / Gcd(a, b);
- }
- int nGcd(int *pnArr, int n)
- {
- if (n == 0)
- {
- return *pnArr;
- }
- else
- {
- return Gcd(pnArr[n-1], nGcd(pnArr, n-1));
- }
- }
- int nlcm(int *pnArr, int n)
- {
- if (n == 1)
- {
- return *pnArr;
- }
- else
- {
- return lcm(pnArr[n-1], nlcm(pnArr, n-1));
- }
- }
- int main()
- {
- int a = 45;
- int b = 30;
- cout<<"gcd = "<<Gcd(a, b)<<endl;
- cout<<"lcm = "<<lcm(a, b)<<endl;
- int nArr[4] = {12,4,6,8};
- cout<<"ngcd = "<<nGcd(nArr, 4)<<endl;
- cout<<"nlcm = "<<nlcm(nArr, 4)<<endl;
- system("pause");
- return 0;
- }</code>
/* 求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法*/#include <iostream>using namespace std;int Gcd(int a, int b){ if (a < b) { swap(a, b); } if (b == 0) { return a; } else { return Gcd(b, a%b); }}int lcm(