2016-11-17 9 views
-1

私は現在、Java上でHSコースを取っているので、私はJavaの初心者です。今私自身のために、私は2桁の数字を取って1となるまでそれをすべて加算するプログラムを書いています。私はスキャナがあり、その数字が奇数か偶数かを計算しています。ランナーのメソッドはすでに完了していますが(基本ビット)、ロジック上混乱しています。私は再帰を使用しようとしており、このコードを実行しますが、ちょっと立ち往生しています。あなたが正しい方向に私を向けることができれば、コード全体を遠ざけなくても役に立ちます。ありがとう、 - 初心者プログラマー整数を持つ再帰(非常に基本的)

public static void main(String[] args) 
{ 
    MathRecursion tester = new MathRecursion(); 
    tester.Method1Runner(); 
} 

public void Method1Runner() 
{ 
GetIntM1(); 
OddOrEven(); 
System.out.println("\n\n"); 
} 

public void GetIntM1() 
{ 
    Scanner kb = new Scanner(System.in); 
    System.out.print("\n\n\nEnter a 2 digit integer: "); 
    twoDig = kb.nextInt(); 
} 

public void OddOrEven() 
{ 
    if (twoDig % 2 == 0) 
    { 
     //This is even method 
     Method1a(twoDig); 
    } 
    else 
    { 
     //This is odd method 
     Method1b(twoDig); 
    } 
} 
public int Method1a(int a) 
{ 
    //if (a = 1) 
    int result = 0; 
    while (a<=b) 
    { 
     result+=a; 
     a++; 
    } 
    System.out.println("The sum of all numbers is "+result); 
} 
+0

どこ失敗などを説明し、あなたが書いたコードを表示してください - [どのように、最小限の完全な、かつ検証例を作成する](http://stackoverflow.com/help/mcve) –

+0

私はだから申し訳ありませんが、私は私のコードをコピーしてコピーしていないことを認識していませんでした!それを修正する編集を行います。あなたの時間を無駄にして申し訳ありません。 –

+0

さて、コードで更新しました。お待ち頂きまして、ありがとうございます! –

答えて

1

再帰は必要ありません。 The sum of the first n odd numbers is n*n.

x前に奇数番号の数はfloor(x/2)またはJava (int) x/2であるかxint、ちょうどx/2ある場合。

ので、数がint xに保存されている「1までそれの前に2桁の数字、そしてそれを追加し、すべての奇数番号」あなたを与えるJavaでの式は次のとおりです。

x + (x/2) * (x/2) 

か単純化:

x + x*x/4 
+0

私は再帰なしでそれを行う方法を知っていますが、再帰を使用する必要があります。任意のヒント? –

関連する問題