[求助]Java编的求最小公倍数的程序,老是不对。。。调试了无数次了,请达人指教。。

//根据老师的要求,用这种算法求最小公倍数。总是有错

import javax.swing.JOptionPane;

public class LCM {

/** Main methed */

public static void main(String[] args) {

// Prompt user input the two numbers

String oneString = JOptionPane.showInputDialog(null,

"Please input the first number:", "Input",

JOptionPane.INFORMATION_MESSAGE);

String twoString = JOptionPane.showInputDialog(null,

"Please input the second number:", "Input",

JOptionPane.INFORMATION_MESSAGE);

// Convert the two strings into int value

double oneDouble = Double.parseDouble(oneString);

double twoDouble = Double.parseDouble(twoString);

double twoNumbersLcm; // 定义的这个字段用来存放最后的结果,也就是两个数的最小公倍数

twoNumbersLcm = lcm(oneDouble, twoDouble);

JOptionPane.showMessageDialog(null, "The lease common multiple is "

+ twoNumbersLcm, "Answer", JOptionPane.INFORMATION_MESSAGE);

}

// 求最小公倍数

public static double lcm(double one, double two) {

double[][] ones = new double[10][2];

double[][] twos = new double[10][2];

double commonMultiple = 1;

divide(ones, one);

divide(twos, two);

commonMultiple = multiple(ones, twos);

return commonMultiple;

}

// 求因子,并将得到的因子和出现的次数存到二维数组中

public static void divide(double array[][], double dividend) {

int i = 0;

double divisor = 2.0;

do {

while (dividend % divisor == 0) {

array[i][0] = divisor;

array[i][1]++;

dividend = dividend / divisor;

}

i++;

divisor++;

} while (dividend != 1);

}

//

public static double multiple(double arrayOne[][], double arrayTwo[][]) {

int i = 0;

double power = 1;

// 去次数较大的因子相乘,得到最小公倍数

while (i<=arrayOne.length || i<=arrayTwo.length) {

if (arrayOne[i][0] == arrayTwo[i][0]) {

if (arrayOne[i][1] >= arrayTwo[i][1])

power *= Math.pow(arrayOne[i][0], arrayOne[i][1]);

else

power *= Math.pow(arrayTwo[i][0], arrayTwo[i][1]);

} else

power = Math.pow(arrayOne[i][0], arrayOne[i][1])

* Math.pow(arrayTwo[i][0], arrayTwo[i][1]);

i++;

}

if (arrayOne[i][0] != 0)

power *= Math.pow(arrayOne[i][0], arrayOne[i][1]);

else

power *= Math.pow(arrayTwo[i][0], arrayTwo[i][1]);

return power;

}

}

用java编写数组最小公倍数_[求助]Java编的求最小公倍数的程序,老是不对。。。调试了无数次了,请达人指教。。...相关推荐

  1. java定义数组长度_在JAVA中定义数组时,可不可以一开始不设定数组的长度?

    定义时当然可以:例如 int[] a; 但是要把它初始化成为一个真正意义上的数组就必须设定长度: int [] a = new int[10]; 这时就只能改变数组里的数值而不能改变它的长度了. Ja ...

  2. java编写k线_用Java绘制K线 (转)

    ---- Java语言中的Applet(Java小程序)和Application(Java应用程序)是在结构和功能上都存在很大差异的两种不同的编程方式.Applet应用于Web页上,可做出多姿多彩的页 ...

  3. java继承数组实例_【Java】理解封装、继承、多态和对象数组的综合实例(简易的租车系统,附代码)...

    一.Drive.java(汽车类 - 父类) package Z_CarManger; import java.io.ObjectInputStream.GetField; public abstra ...

  4. java编写k线_用Java绘制K线图

    [IT168技术文档] Java语言中的Applet(Java小程序)和Application(Java应用程序)是在结构和功能上都存在很大差异的两种不同的编程方式.Applet应用于Web页上,可做 ...

  5. java编写k线_用Java绘制K线

    Java语言中的Applet(Java小程序)和Application(Java应用程序)是在结构和功能上都存在很大差异的两种不同的编程方式.Applet应用于Web页上,可做出多姿多彩的页面特效,给 ...

  6. java 叉号关闭_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impo ...

  7. java与数据库教程_[求助]Java与数据库的链接的教程or资料

    展开全部 JAVA连接数据库e68a843231313335323631343130323136353331333239303864主要有两种方式: 一是用JDBC-ODBC桥来连接 二是用相关厂商提 ...

  8. java编写视频播放器_基于Java的视频播放器可以足够快吗?

    第三次谷歌搜索"视频播放java"似乎相关: http://blog.pirelenito.org/2008/08/java-movie-playback-jogl-fobs4jm ...

  9. java编写数字金字塔_在java中的数字金字塔 (numbers pyramid in java)

    最佳答案 英文原文 It might be a bit simpler to write and read if you make a separate method to print each li ...

  10. java动态分配数组大小_关于java:如何动态增加2D数组的大小

    如果我知道我有多少个元素,我已经知道如何创建一个固定数组.例如,对于7个元素,我做了一些类似于int数组[2][4]的事情. 但是,如果我在开始时有0个元素(这意味着数组在开始时是空的),并且希望随着 ...

最新文章

  1. exchange2003如何恢复邮件
  2. 如何用 Serverless 让 SaaS 获得更灵活的租户隔离、更优的资源开销
  3. 大数据实训记录(一)
  4. Winform中实现ZedGraph曲线图的图像复制到剪切板、打印预览、获取图片并保存、另存为的功能
  5. 树的先序遍历的栈实现
  6. java中判断字段真实长度(中文2个字符,英文1个字符)的方法
  7. 12.15模拟:总结
  8. jaxb xml配置_JAXB和Log4j XML配置文件
  9. 亲测!这本 Python 书销量超过13W+原来是这样
  10. 13、三维图绘制及添加文本
  11. 求最大公约数欧几里得算法
  12. 模拟退火算法及MATLAB代码
  13. ant-design-vue 的颜色选择器
  14. 服务器重装系统之DELL
  15. word计算机板书,Word板书设计怎么写
  16. Stata Journal 2001-2019年全部期刊目录及下载链接
  17. RS-485 工作逻辑
  18. iOS22 地图定位- 苹果自带地图
  19. 【最新】2020年注册测绘师考试测绘综合能力真题及参考答案
  20. linux内存相关命令汇总

热门文章

  1. Visio2013里面的大括号
  2. mysql 出现ERROR 2002 (HY000): ....错误通用解决方法
  3. CentOS下Redisserver安装配置
  4. No_16_0224 Java基础学习第五天
  5. 小偷程序原理和简单示例
  6. Linux 文件系统启动记录
  7. fft c语言与matlab,c语言matlab实现fft几种编程实例.doc
  8. idea 运行jmeter源码_JMeter知识系列(2)JMeter连接MongoDB
  9. add git 的文件 移除_本地删除文件后让git服务器也删除这个文件
  10. 2个YUV视频 拼接技术