两道关于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的最大公约数。 展开
(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的最大公约数。 展开
1个回答
展开全部
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);
}
}
好长时间没有写做数学题了,有点不适应
/**
*
* @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);
}
}
好长时间没有写做数学题了,有点不适应
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |