[ad_1]
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
まず、コードを適切にインデントします。スタイルを選択して一貫性を保ちます。これにより、コードが読みやすくなります。
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 桁になるまでループで呼び出します。
コードに飛び込む前に、常に座って考えてください。そうすることで、無駄な時間を大幅に節約できます。 これは次のような場合に役立ちます。 問題を解決するコードの書き方、初心者ガイド[^]
[ad_2]
コメント