【解決方法】Javaからのコンピュータの質問


WAP で番号を入力し、MAGIC 番号かどうかを確認して印刷します。 かどうかを確認するには、
数値が MAGIC 数値であるか、その数字を加算しません。 次に、得られた合計の桁を加算します。

1 桁の数字が得られるまでこのプロセスを繰り返します。 最終的に 1 を取得した場合、与えられた
数値は、boolean、return、String を使用しない MAGIC 数値です。[] isHappyNumber() メソッドの args と return ステートメント: および isHappyNumber(number))

私が試したこと:

import java.util.*;
 class b1
{ public static void main ()
    {Scanner sc= new Scanner(System.in);
        int sum = 0;
    System.out.print("Enter a Number");
    int n=sc.nextInt();
    do {
     int c=n%10;
     int s=c*c;
      sum = sum+s;
       n=n/10;
    }
    while(sum==1);
    {if(sum==1)
    System.out.print("It is a Happy Number");
    else
    System.out.print("It is not a Happy Number");
    }}
}

解決策 1

まず、コードを適切にインデントします。スタイルを選択して一貫性を保ちます。これにより、コードが読みやすくなります。

Java
import java.util.*;
class b1 {
   public static void main() {
      Scanner sc = new Scanner(System.in);
      int sum = 0;
      System.out.print("Enter a Number");
      int n = sc.nextInt();
      do {
         int c = n % 10;
         int s = c * c;
         sum = sum + s;
         n = n / 10;
      }
      while (sum == 1); {
         if (sum == 1)
            System.out.print("It is a Happy Number");
         else
            System.out.print("It is not a Happy Number");
      }
   }
}

次に、指示を見てください。何をすべきかが示されています。
1) 数字が MAGIC 番号であるかどうか、またはその数字を足さないことを確認します。
2) 次に、得られた合計の桁を加算します。
3) 1桁の数字が得られるまで(2)からの作業を繰り返します。
4) 最後に 1 が出た場合、その数字は MAGIC ナンバーです。
5) これはメインで直接ではなくメソッドであるべきだと思われます。

あなたのコードはそれをしません。入力された桁数に関係なく、合計が1でなくなるとすぐにループが終了します。 したがって、「11111111111112」と入力すると、1 桁の「2」が処理され、do ループが終了します。 桁が足りないことをどのように検出するかを考えてみてください…それは非常に明白です。

まず、整数パラメータを受け取り、その桁の合計を返す「ヘルパー メソッド」を作成します。
次に、残り 1 桁になるまでループで呼び出します。

コードに飛び込む前に、常に座って考えてください。そうすることで、無駄な時間を大幅に節約できます。 これは次のような場合に役立ちます。 問題を解決するコードの書き方、初心者ガイド[^]

コメント

タイトルとURLをコピーしました