和奇数プログラム

RobC:

私は私が渡された番号が奇数の計算の場合の方法を作ることになってるのプログラムを書いています。この方法では、私はまた、渡された番号は戻り偽、> 0で、そうでない場合はチェックする必要があります。Iはまた、(数値の範囲を表す開始と終了、)は、2つのパラメータを有する第二の方法を行うことになっていますおよび方法は、その範囲内のすべての奇数を合計するforループを使用することになっています。パラメータの端部はより大きくする必要があるか、開始に等しく、両方の開始と終了のパラメータは、それらの条件が満たさリターンでない場合-1メソッドから無効な入力を示すために、0より大きくなければなりません。

これは割り当てです。

int型のパラメータでISODDというメソッドを書き、番号を呼び出します。この方法は、ブール値を返す必要があります。その番号を確認し、それはリターン偽でない場合は、> 0です。数が奇数の戻りtrueの場合、そうでない場合はfalseを返します。

2つのINTパラメータを有するsumOddと呼ばれる第二の方法は、開始と終了書き込み、数値の範囲を表します。この方法は、端部を含む、その範囲内のすべての奇数を合計し、合計値を返すようにループに使用します。これは、各番号が奇数であるかどうかを確認する方法ISODDを呼び出す必要があります。パラメータの端部はより大きくする必要があるか、開始に等しく、両方の開始と終了のパラメータは、それらの条件が満たさリターンでない場合-1メソッドから無効な入力を示すために、0より大きくなければなりません。

私は今、1時間以上試してみたが、私の出力が間違っているので、私はそれを正しくやっていませんよ。私が期待される結果と私のコード下記の私の結果を下に書いています。

これは私のコードです:

public static boolean isOdd(int number){
    boolean status = false;
    if(number < 0){
        status = false;
    } else if(number % 2 != 0){
        status = true;
    }
    return status;
}
public static int sumOdd(int start, int end){
    int sum = 0;
    if((end < start) || (start < 0) || (end < 0)){
        return -1;
    }
    for(int i = 0; i <= end; i++){
        if((isOdd(i))){
            sum += i;
        }
    }
    return sum;
}

期待される結果は次のとおりです。

System.out.println(sumOdd(1, 100));// → should return 2500

System.out.println(sumOdd(-1, 100)); // →  should return -1

System.out.println(sumOdd(100, 100));// → should return 0

System.out.println(sumOdd(13, 13));// → should return 13 (This set contains one number, 13, and it is odd)

System.out.println(sumOdd(100, -100));// → should return -1

System.out.println(sumOdd(100, 1000));// → should return 247500

私の結果:

2500

-1

2500

49

-1

250000
チャールズDowbecki:

それらが必要な場合にのみ、それらを作成し、あなたの方法の物乞いで変数を宣言しないでください。ヨルダンで指摘の問題はであるためfor、ループインデックス、それはから開始する必要がstart0ではありません、:

public static boolean isOdd(int number) {
    if (number < 0) {
        return false;
    }
    return number % 2 != 0;
}

public static int sumOdd(int start, int end) {
    if ((end < start) || (start < 0) || (end < 0)) {
        return -1;
    }
    int sum = 0;
    for (int i = start; i < end; i++) {
      if (isOdd(i)) {
        sum += i;
      }
    }
    return sum;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=178254&siteId=1