十转任意进制
十转任意进制最优解 传送门
核心代码
public static int gcd(int a, int b) {
if (b==0) {
return a;
}else {
return gcd(b, a%b);
}
}
n个数求最大公约数
public class n个数求最小公倍数 {
public static void main(String[] args) {
int arr[] = { 14, 21, 5 };
System.out.println(lcm(arr));
}
public static int gcd(int a, int b) {
int temp;
if (a < b) {
temp = a;
a = b;
b = temp;
}
if (a % b == 0) {
return b;
} else {
return gcd(b, a % b);
}
}
public static int lcm(int arr[]) {
int x, y, num = arr[0], i, gcd;
for (i = 0; (i + 1) < arr.length; i++) {
x = num;
y = arr[i + 1];
gcd = gcd(x, y);
num = x / gcd * y / gcd * gcd;
}
return num;
}
}
n个数求最小公倍数
public class n个数求最小公倍数 {
public static void main(String[] args) {
int arr[] = { 14, 21, 5 };
System.out.println(lcm(arr));
}
public static int gcd(int a, int b) {
int temp;
if (a < b) {
temp = a;
a = b;
b = temp;
}
if (a % b == 0) {
return b;
} else {
return gcd(b, a % b);
}
}
public static int lcm(int arr[]) {
int x, y, num = arr[0], i, gcd;
for (i = 0; (i + 1) < arr.length; i++) {
x = num;
y = arr[i + 1];
gcd = gcd(x, y);
num = x / gcd * y / gcd * gcd;
}
return num;
}
}