首页 > 其他分享 >练习8:最大公约数和最小公倍数问题

练习8:最大公约数和最小公倍数问题

时间:2022-08-19 15:55:07浏览次数:465  
标签:function args return gcd temp 公倍数 练习 最大公约数 gcd2

最大公约数的计算,用到辗转相除法

例如:求 gcd(24, 10) ,可以转换为 gcd(10,4), 然后是 gcd(4,2) ,然后是(2,0),最好得出结果是2

方法1:

function gcd(a, b) {
  var temp 
  if (a < b) temp = b, b = a, a = temp
  while (b != 0) {
    temp = b
    b = a % b
    a = temp
  } 
  return a
}

方法2:

function gcd2(a,b) {
  var temp 
  if (a < b) temp = b, b = a, a = temp
  if (a == b || b == 0) return a
  return gcd2(b, a % b)
}

多个数求公约数:

function gcd_multiple(...args) {
  while (args.length > 1) {
    args.splice(0,2,gcd2(args[0],args[1]))
  }
  return args[0]
}

最小公倍数的计算,两数的乘积/最大公约数

function lcm(a, b) {
  return a * b / gcd2(a,b)
}
function lcm_multiple(...args) {
  while (args.length > 1) {
    args.splice(0,2,lcm(args[0],args[1]))
  }
  return args[0]
}

标签:function,args,return,gcd,temp,公倍数,练习,最大公约数,gcd2
From: https://www.cnblogs.com/xuweikang/p/16602252.html

相关文章

  • 第四章 2 数据类型-字符串 练习题
    第四章2数据类型-字符串练习题基础知识1\python语句"".join(list('hellowordld!'))的执行结果是:helloworld!#join()函数,是字符串内置的一个函数,在classstr下面a......
  • #10007. 「一本通 1.1 练习 3」线段
    #include<bits/stdc++.h>usingnamespacestd;structnode{ intl,r;};boolcmp(nodex,nodey){ returnx.r<y.r;}classSolution{ public: intsolve(vector......
  • MYSQL练习题(45题)
    建表语句--学生表StudentcreatetableStudent(SIdvarchar(10),Snamevarchar(10),Sagedatetime,Ssexvarchar(10));insertintoStudentvalues('01','赵雷',......
  • #10006. 「一本通 1.1 练习 2」数列分段
    #include<bits/stdc++.h>usingnamespacestd;classSolution{ public: intsolve(vector<int>num,intm) { intans=1,sum=0; for(inti=0;i<num.size(......
  • C++primer练习15.1-14
    练习15.1什么是虚成员?::需要派生类自己定义的成员练习15.2protected访问说明符与private有何区别?::protected允许派生类访问,private一律不允许访问练习15.3定义你自己的......
  • C++primer练习14.44-53
    练习14.44编写一个简单的桌面计算器使其处理二元计算doubleadd(doublea,doubleb){returna+b;}autosubtra=[](doublea,doubleb){returna-b;};stru......
  • 作用练习
    查询岗位名以及岗位包含的所有员工名字mysql>selectpost,group_concat(name)fromempgroupbypost;查询岗位名以及各岗位内包含的员工个数mysql>selectpos......
  • 关于CSAPP练习题 3.46 E. 的一点笔记(也许是勘误?
    关于CSAPP练习题3.46E.的一点笔记先放原题这次,我们主要关注E小问:习题及答案中提到函数存在两处错误:对malloc的调用应该以strlen(buf)+1作为它的参数,而且代码还......
  • C++primer练习14.26
    练习14.26为你的String类定义下标运算符char&operator[](size_td){returnelements[d];}constchar&operator[](size_td)const......
  • 第三周练习题
    一,代码识别,写出结果,并分析原因(function(){returntypeofarguments; })();console.log( typeofg())报错因为g只在函数体内才可见命名的函数表达式(functi......