递归练习---求两个数的最大公约数
2015-11-07 00:00
429 查看
摘要: 其中, createTwoRandom()、createTwoRandomB() 和 createTwoRandomC();方法是为了产生两个随机数,个人感觉第二个稍微好些;水平有限啊;在测试时,最好使用随机数,并且多试验几次;以免代码有bug;
package cn.digui_2015_11_7_周六; import java.util.Random; /* * 2015.11.7 8:44 周六 * 递归,求最大公约数 */ public class MaxCommonDivisor { private static int result = 1;; public static int[] arr = new int[2]; public static void main(String[] args) { createTwoRandomB(); maxComDiv(arr[0], arr[1]); createTwoRandom(); createTwoRandomC(); } public static void maxComDiv(int num1, int num2) { int result = recMaxComDiv(num1, num2); if(result != 1){ System.out.println("the value of MaxCommonDivisor is : " + result); }else{ System.out.println("not exists MaxCommonDivisor"); } } //干活出力的是这个函数 /* * 查看百度百科 ”最大公约数“ 里,有一种算是是 ”短除符号 “算法,以这个为依据进行的设计 */ private static int recMaxComDiv(int a, int b) { for (int i = 2; i <= Math.min(a, b) ; i++) { if (a % i == 0 && b % i == 0) { result *= i; recMaxComDiv(a / i, b / i); break; } } return result; } public static void createTwoRandom() { Random random = new Random(); int i = 0; while (true) { int num = random.nextInt(100); if (num >= 2) { arr[i++] = num; } if (i == 2) { break; } } System.out.println("产生的两个随机数是:" + arr[0] + " " + arr[1]); } public static void createTwoRandomB() { for (int i = 0; i < 2; i++) { arr[i] = (int) (Math.random() * 100 + 2); //范围是[2,102)之间的随机数 } System.out.println("产生的两个随机数是:" + arr[0] + " " + arr[1]); } //下面这个方式是有问题的,当初始条件(一开始运算都)不满足while条件时,arr数组,全是默认值0 public static void createTwoRandomC() { Random random = new Random(); int i = 0; int num; while ((num = random.nextInt(100)) >= 2 && i < 2) { arr[i++] = num; } System.out.println("产生的两个随机数是:" + arr[0] + " " + arr[1]); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统