用java编写一个程序段,输入两个正整数m和n,求其最大公约数和最小公倍数?
递归分治法口诀?
1.1递归
自上而下分析,然后回溯:从n->的情况下到1(特殊情况)->,然后反算->,最后得到n的情况
必须满足以下要求:
每次你叫自己,在某种意义上你必须更接近解(每一次运算都是收敛的):问题的规模越来越小
必须有一个终止处理或计算的准则必须有一个退出
1.2分治法
用分治法来解决子问题,子问题的类型往往与原问题相同,所以自然采用递归解法
自然语言描述计算两个非负整数p和q的最大公约数:如果q为0,则最大公约数为p。否则,将p除以q得到余数r。p和q的最大公约数是q和r的最大公约数。java代码公约数
publicstaticintgcd(intp,intq){如果(q==0)返回pintr=p%q返回gcd(q,r)}]公倍数是两个数除以最大公约数的乘积。公共静态intg(intp,intq){返回p*q/gcd(q,r)}
原文标题:java 用java编写一个程序段,输入两个正整数m和n,求其最大公约数和最小公倍数?,如若转载,请注明出处:https://www.tzjingsheng.com/wenda/51736.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「豪运号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。