0

そのため、私のアプリでは、大量のif / elseステートメントを使用せずに、メソッドの1つで簡単な計算を実行しようとしています。

したがって、最大13の「StartInt」という名前の整数があります。取得する必要があるのは、このパターンの結果となる整数のFinishIntです。

StartInt: 13 FinishInt: 1  
StartInt: 12 FinishInt: 2 
StartInt: 11 FinishInt: 3

など...StartIntが1、FinishIntが13になるまでずっと下がっています。とにかく、これをどのように達成しますか?私はこれが単純でなければならないことを知っていますが、私は数学がそれほど得意ではありません!:)

4

1 に答える 1

6

StartIntが0でFinishIntが13になるまでずっと下がっています。とにかく、これをどのように達成しますか?

startInt = 13が与えられ、のデクリメントごとに1をインクリメントしfinishInt = 1たい場合、これは完全には機能しません。次の表を確認してください。finishIntstartInt

13 1
12 2
11 3
10 4
 9 5
 8 6
 7 7
 6 8
 5 9
 4 10
 3 11
 2 12
 1 13

したがって、シーケンスの最初または最後のいずれかで1だけずれています。それにもかかわらず、次のようなものが必要なようです。

(int) calculateFinish(int startInt)
{
    int finishInt = -1;
    if (startInt >= 0 && startInt <= 13) {
        finishInt = 14 - startInt;
    }
    return finishInt;
}

finishIntこれにより、 whenの値は14になりstartInt = 0ます。

于 2012-09-24T02:13:08.553 に答える