当前位置: 首页 > wzjs >正文

百度提交入口网站app开发哪家好

百度提交入口网站,app开发哪家好,做网站有几种语言,上海响应式网页建设求最大公约数(GCD)与最小公倍数(LCM) 1. 基本概念 GCD(最大公约数):两个整数的最大公共因数LCM(最小公倍数):两个整数的最小公共倍数数学关系:L…

求最大公约数(GCD)与最小公倍数(LCM)

1. 基本概念

  • GCD(最大公约数):两个整数的最大公共因数
  • LCM(最小公倍数):两个整数的最小公共倍数
  • 数学关系LCM(a,b) = (a × b) / GCD(a,b)

2. C++实现方法

方法一:使用STL的gcd函数(C++17起)

#include <iostream>
#include <numeric> // 包含gcd和lcm函数int main() {int a = 56, b = 98;// C++17标准库函数int gcd_result = std::gcd(a, b);int lcm_result = std::lcm(a, b);std::cout << "数字: " << a << " 和 " << b << "\n";std::cout << "GCD: " << gcd_result << "\n";std::cout << "LCM: " << lcm_result << "\n";return 0;
}

方法二:自定义实现(欧几里得算法 / 辗转相除法)

欧几里得算法基于以下核心原理:
两个整数的最大公约数(GCD)等于其中较小数与两数相除余数的最大公约数
数学表达式:
gcd(a, b) = gcd(b, a mod b)
持续递归/迭代,直到余数为0时,此时的除数即为最大公约数

关键引理

a = b*q + r(其中 q 是商,r 是余数),则:
gcd(a, b) = gcd(b, r)

证明过程
  1. d = gcd(a, b),则 d|ad|b(d能整除a和b)
  2. 因为 r = a - b*q,所以 d|r(d也能整除余数)
  3. 因此d是br的公约数
  4. 反过来证明gcd(b,r)也是ab的公约数
  5. 故两者相等
#include <iostream>
#include <cstdlib> // 用于abs函数
using namespace std;// 递归实现GCD
int gcd(int a, int b) 
{return b == 0 ? a : gcd(b, a % b); //被除数b如果等于0那么就返回a,不等于0就返回b除a%b
}// 迭代实现GCD
int gcd_iterative(int a, int b) 
{while (b) {a %= b;swap(a, b);}return a;
}// 计算LCM
int lcm(int a, int b) 
{return abs(a * b) / gcd(a, b);
}int main() {int x = 56, y = 98;cout << "自定义实现:\n";cout << "GCD(" << x << ", " << y << ") = " << gcd(x, y) << "\n";cout << "LCM(" << x << ", " << y << ") = " << lcm(x, y) << "\n";return 0;
}

注意事项
处理负数:建议先取绝对值
处理零值:gcd(a,0) = |a|lcm(a,0) = 0
溢出问题:大数计算时考虑使用long long

补充:二进制GCD算法(Stein算法)

迭代版
int binary_gcd(int a, int b) {if (a == 0) return b;if (b == 0) return a;// 移除公共的2因子int shift = __builtin_ctz(a | b);a >>= __builtin_ctz(a);do {b >>= __builtin_ctz(b);if (a > b) swap(a, b);b -= a;} while (b != 0);return a << shift;
}
递归版
int binary_gcd(int a, int b) {if (a == b) return a;if (a == 0) return b;if (b == 0) return a;if (~a & 1) {  // a是偶数if (b & 1) // b是奇数return binary_gcd(a >> 1, b);else       // 都是偶数return binary_gcd(a >> 1, b >> 1) << 1;}if (~b & 1)    // a奇b偶return binary_gcd(a, b >> 1);// 都是奇数return (a > b) ? binary_gcd((a-b)>>1, b) : binary_gcd((b-a)>>1, a);
}
http://www.dtcms.com/wzjs/570872.html

相关文章:

  • 免费网站容量大企业品牌营销策划公司
  • 网站数据分析报告深圳网页制作推广公司排名
  • 同个主体新增网站备案传智播客网页平面设计
  • 站长之家统计群晖可以做网站吗
  • 公司做网站价格wordpress 上传插件
  • 做网站需要营业执照吗怎样在手机上制作网页
  • 建设网站的模板微信网站留言板如何制作
  • 株洲做网站优化购物网站app开发
  • 官方网站下载6966装修案例图
  • 中卫网站推广优化公司wordpress 备份数据库
  • 扬州做机床公司网站wordpress获取当前分类文章数
  • 西宁网站建设多少钱p2p网站开发
  • 在阿里云上做网站步骤做外贸的国际网站有哪些内容
  • 免费注册二级域名网站网站托管维护合同
  • 湖南外贸网站建设开网站建设公司挣钱吗
  • 南阳网站推广效果大连网站开发师
  • 律师个人 网站做优化做知乎网站要多少钱
  • 电商网站首页字体wordpress 幻灯片代码在哪里
  • 外贸网站建站案例房产机构网站建设目标定位
  • 专业网站设计的公司网站建设维护兼职
  • 怎么打开网站wordpress 搜索框大小
  • 做网站 成都昆山公司网站建设
  • 广西南宁市住房和城乡建设局网站系统之家网站怎么做
  • 网站开发+进度表免费网站怎么样
  • 网站logo更换人工智能网站应怎么做
  • 微名片网站怎么做博客做资讯类网站
  • 定州市住房和城乡建设局 网站6黄页网站建设
  • 网站开发技术课程设计报告少儿类网站怎么做
  • w网站建设需求说明百度入口网址
  • 中国企业建设协会网站做推广哪个平台好