两道关于Java数组和递归的题目,谁帮我解答下

学校去年教的Java基础,中间隔了一学期没有Java课,这学期突然学数据结构,不记得怎么做了,谁能帮我做下题目,明天上机实验要用的,谢谢~(1)判断数组元素是否已按升序排... 学校去年教的Java基础,中间隔了一学期没有Java课,这学期突然学数据结构,不记得怎么做了,谁能帮我做下题目,明天上机实验要用的,谢谢~

(1)判断数组元素是否已按升序排列。
实现isSorted()方法判断整数(对象)数组是否已按升序排列,声明如下:

public static boolean isSorted(int[] table) //判断整数数组是否已按升序排列

public static boolean isSorted(Comparable[] table //判断对象数组是否已按升序排列

(2)用递归算法求两个整数的最大公因数。
设有不全为0的两个数a和b,记gcd(a,b)为它们的最大公因数,即同时能整除a和b的公因数中的最大者。按照欧几里德(Euclid)的辗转想除算法,gcd(a,b)具有如下性质:
gcd(a,b)=gcd(b,a)
gcd(a,b)=gcd(-a,b)
gcd(a,0)=|a|
gcd(a,b)=gcd(b,a%b), 0≤a%b<b

用递归算法实现gcd(a,b),并给出下列调用:
① 求两个整数a、b的最小公倍数; ② 求三个整数a、b、c的最大公约数。
展开
 我来答
山之道
2010-03-08 · TA获得超过1743个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:255万
展开全部
public class Util {
/**
*
* @param table
* @return <code>true</code> if the table has sorted
* <code>false</code> otherwise
*/
public static boolean isSorted(int[] table) {
boolean hasSorted = true;
for (int i = 1; i < table.length && hasSorted; i++) {
hasSorted = table[i] >= table[i - 1];
}
return hasSorted;
}

/**
*
* @param table
* @return <code>true</code> if the table has sorted from min to max<br>
* <code>false</code> otherwise
*/
public static boolean isSorted(Comparable[] table) {
boolean hasSorted = true;
for (int i = 1; i < table.length && hasSorted; i++) {
hasSorted = table[i].compareTo(table[i - 1]) >= 0;
}
return hasSorted;
}

/**
* 求两数的最大公约数
*
* @param a
* @param b
* @return a,b的最大公约数
*/
public static int gcd(int a, int b) {
if (a % b != 0) {
return gcd(b, a % b);
} else {
return b;
}
}

/**
* 求最大公约数
*
* @param a
* @param b
* @return
*/
public static int commonMutipleNum(int a, int b) {
int gcd = gcd(8, 10);
return a * b / gcd;
}

public static int gcd3(int a, int b, int c) {
return gcd(gcd(a, b), c);
}
}
好长时间没有写做数学题了,有点不适应
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式