例:
入力-1:
N = 5
出力:
5
説明:
醜い数字のシーケンス [1、2、3、4、5、6、8、10、12、15] の 5 番目の醜い数字は 5 です。 .入力-2:
N = 7
出力:
8
説明:
醜い数字のシーケンス [1、2、3、4、5、6、8、10、12、15] では、7 番目の醜い数字は 8 です。 この問題の解決方法この問題を解決する簡単な方法は、指定された数値が 2、3、または 5 で割り切れるかどうかを確認し、指定された数値になるまでシーケンスをたどることです。ここで、数値がすべての醜い数値の条件を満たすかどうかを調べ、その数値を出力として返します。public class UglyN { public static boolean isUglyNumber(int num) { boolean x = true; while (num != 1) { if (num % 5 == 0) { num /= 5; } else if (num % 3 == 0) { num /= 3; } // To check if number is divisible by 2 or not else if (num % 2 == 0) { num /= 2; } else { x = false; break; } } return x; } public static int nthUglyNumber(int n) { int i = 1; int count = 1; while (n > count) { i++; if (isUglyNumber(i)) { count++; } } return i; } public static void main(String[] args) { int number = 100; int no = nthUglyNumber(number); System.out.println("The Ugly no. at position " + number + " is " + no); } }
The Ugly no. at position 100 is 1536.
以上がJava で N 番目の醜い数字を見つけるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。