Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでN番目の醜い数字を探す


素因数が2、3、5のいずれかである数は、醜い数と呼ばれます。醜い数字には、1、2、3、4、5、6、8、10、12、15などがあります。

Nという番号があります タスクは、醜い番号のシーケンスでN番目の醜い番号を見つけることです。

例:

入力-1:

N = 5

出力:

5

説明:

醜い数字のシーケンスの5番目の醜い数字[1、2、3、4、5、6、8、10、12、15]は5です。

入力-2:

N = 7

出力:

8

説明:

醜い数字のシーケンスの7番目の醜い数字[1、2、3、4、5、6、8、10、12、15]は8です。

この問題を解決するためのアプローチ

この問題を解決する簡単な方法は、指定された数が2、3、または5で割り切れるかどうかを確認し、指定された数までシーケンスを追跡することです。次に、その数値が醜い数値のすべての条件を満たすかどうかを調べ、その数値を出力として返します。

  • 数字Nを入力して、N番目の醜い数字を見つけます。
  • ブール関数isUgly(int n)は、入力として数値「n」を取り、それが醜い数値の場合はTrueを返し、それ以外の場合はFalseを返します。
  • 整数関数findNthUgly(int n)は、入力として「n」の数値を取り、 nを返します。 出力としての醜い数字。

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.

  1. 台形の領域を見つけるJavaプログラム

    この記事では、台形の領域を見つける方法を理解します。台形は、少なくとも1対の辺が互いに平行な四辺形の一種です。台形の平行な側面はベースと呼ばれ、台形の非平行な側面は脚と呼ばれます。台形とも呼ばれます。 台形の面積は、式-を使用して計算されます。 (height/2 * (side_1 + side_2). i.e. Area = ½ x (sum of the lengths of the parallel sides) x perpendicular distance between parallel sides 以下は同じもののデモンストレーションです。平行な辺aとbの長

  2. 長方形の周囲を見つけるJavaプログラム

    この記事では、長方形の周囲を見つける方法を理解します。長方形の周囲長は、長方形のすべての辺の長さを加算して計算されます。 以下は長方形のデモンストレーションです。長方形の周囲は、長方形の2つの長さと2つの幅の全長です- 入力 入力が-であると仮定します The length of the sides of a rectangle are : 5, 8, 5, 8 出力 必要な出力は-になります Perimeter : 26 アルゴリズム Step 1 – START Step 2 – Declare 5 floating point variabl