很郁闷的被个数学问题给搞晕了。具体实现:
1.去两个数n,m
2.n % m得到余数r
3.判断r==0,是则最大公因子是n;否则m赋n的值,n赋r的值,重复步骤12
其中需要判断两处:1.一开始n%m的时候是否需要判断n,m的大小
2.第二次交换m,n的时候是否需要判断n,m的值
例子:
1,n=12 m=4
按照上面的算法
最大公因子就是12了,与实际结果不符合,要求m<n
2. n=119,m=544
结果最大公因子为119,出问题,要求m>n
想问算法有问题么
1.去两个数n,m
2.n % m得到余数r
3.判断r==0,是则最大公因子是n;否则m赋n的值,n赋r的值,重复步骤12
其中需要判断两处:1.一开始n%m的时候是否需要判断n,m的大小
2.第二次交换m,n的时候是否需要判断n,m的值
例子:
1,n=12 m=4
按照上面的算法
最大公因子就是12了,与实际结果不符合,要求m<n
2. n=119,m=544
结果最大公因子为119,出问题,要求m>n
想问算法有问题么
解决方案 »
- 基本类型问题,short,byte赋予初始值的时候只能给0x7fff,0x7f。而int,char 初始值则是 0xffff ffff, 0xffff
- java 日期转换 急急!!
- 24点算法问题
- 俄罗斯方块Java源代码..
- java存储视频文件
- 小弟天生愚笨 ̄ ̄Help!!!!
- 帮我看一下
- 怎样在JBULIDER中使用滚轮啊?
- 怎样获取一个网站的所有目录,好使的连接和不好使的连接都显示出来(当然用java)在线关注!!!!!
- 解决一个小问题……
- MyEclipse调试方式启动tomcat问题,急!! ,各内存设置都试过了,一启动MyEclipse就死了,高手前来帮忙!
- a=b b=c 就a=c?
1,n=12 m=4
按照上面的算法
最大公因子就是12了,与实际结果不符合,要求m<n
2. n=119,m=544
结果最大公因子为119,出问题,要求m>n
上面两个要求写反了。
1.m>n
2.m<n
2.n % m得到余数r
3.判断r==0,是则最大公因子是m;否则m赋n的值,n赋r的值,重复步骤12加上第1点的判断,还有第三点中的n换成m
不需要判断第二次交换n,m的值的,因为n%m后得到的r一定比m小,然后又将m赋给n,将r赋给m,所以后来的n一定大于m。
例子1:
n=12,m=4 因为n>m,所以不必交换
n%m=12%4=0
r=0,所以最大公因子是m,即为4例子2;
n=119,m=544,因为n<m所以交换n=544,m=119
n%m=544%119=68!=0,所以继续,n=119,m=68
n%m=119%68=51!=0,所以继续,n=68,m=51
n%m=68%51=17!=0,所以继续,n=51,m=17
n%m=51%17=0,所以终止,最大公因子为17