2017-08-19 13 views
-9

ユーザが任意の整数値を入力し、連続する数値=入力の合計として出力するJavaでコードを記述したいと思います。すべての可能性。Javaでのシーケンス/シリーズ印刷

例:

入力出力

  1. 7 + 8
  2. 4 + 5 + 6
  3. 1 + 2 + 3 + 4×5
+2

あなたは何を思いついたのですか?コードはどこですか? –

+0

@LucianovanderVeekens これを見てください。 実際に私はコードを求めています。 –

+0

例3は '1 + 2 + 3 + 4 + 5'ではなく、' 1 + 2 + 3 + 4x5' –

答えて

1

自分でアルゴリズムを思いついたとしようが、残酷なアルゴリズムではこの問題を解決することはできないことがわかるはずです。私はあなたが必要とするのは、コードそのものではなくアルゴリズムだと考えています。

[a,b]の範囲のすべての整数を入力とみなしてみましょう。だから、あなたはこの式で終わるでしょう(b+a) (b-a+1)/2 = input。入力= 15、(b+a)(b-a+1)はしたがって、(a,b)

  1. (B +、B-Aのための4つの可能性が30

    ありさinput * 2の要因の2つであろうあなたのケースで(a、b)=(15,15)

  2. (b + a、b-a + 1)=(15,2)したがって、(a、b)= (b + a、b-a + 1)=(10,12)=(4,6)
  3. (b + a、b-a + 1)=(10,3) 1)=(6,5)、従って(a、b)=(1,5)

要約すると、この問題は本質的に数値をどのように因数分解するかを尋ねることです。