求出第1500个的丑数是多少求解
- 提问者网友:呆萌心雨
- 2021-02-28 03:21
- 二级知识专家网友:疯山鬼
- 2021-02-28 04:02
- 1楼网友:野心和家
- 2021-02-28 04:19
public class maintest {
static long two = 0, three = 0, five = 0;
static void analyse(int n) { while (n % 2 == 0) { two++; n /= 2; } while (n % 3 == 0) { three++; n /= 3; } while (n % 5 == 0) { five++; n /= 5; } }
static int min(int a, int b, int c)
{
a = a < b ? a : b;
if (c < a) return c;
else return a;
}
static int method2(int mindex)
{
int index = 1;
int[] arr = new int[mindex];
arr[0] = 1;
int index2 = 0, index3 = 0, index5 = 0;
while (index < mindex)
{
int min = min(arr[index2] * 2, arr[index3] * 3, arr[index5] * 5);
arr[index] = min;
while (arr[index2] * 2 <= arr[index]) index2++;
while (arr[index3] * 3 <= arr[index]) index3++;
while (arr[index5] * 5 <= arr[index]) index5++;
index++;
} int ans = arr[mindex - 1];
return ans;
}
public static void main(string[] args) {
int n = method2(1500);
system.out.println("the 1500th number is:" + n);
analyse(n); system.out.println(method2(10) + "=2^" + two + "*3^" + three + "*5^" + five);
} } ps:脑细胞快死光了:)