1

このインターフェイスに基づいて、Java で電卓を作成する必要があります。

public interface CalculatorIF {
    int add(int x, int y);
    int sub(int x, int y);
    int mult(int x, int y);
    //double div(int x, int y);
    //int sqrt(int x);
}

しかし、すべてのメソッドについて、前後の条件が必要です。前提条件について本当に助けが必要です。なぜなら、Java によってまだ処理されていない意味のあるものを 1 つも想像できないからです。

編集:除算と平方根は私には明らかですが、追加、サブ、マルチにはいくつかのアイデアが必要です。

4

1 に答える 1

1

2 つの値を加算するInteger.MAX_VALUEと、結果が収まらずint、切り捨てられます。一方、入力ドメインが制限されている場合、結果が切り捨てられず、代わりに期待値を持つことを常に保証できます。

たとえば、 と の場合x <= Integer.MAX_VALUE / 2y <= Integer.MAX_VALUE / 2合計x + yは より小さいか等しいためInteger.MAX_VALUE、正の整数の切り捨ては行われません。負の値 および についても同様の推論を使用できますInteger.MIN_VALUE。減算の前提条件も同じ方法で実行できます。

乗算では、いずれかのオペランドの絶対値が 未満の場合sqrt (Integer.MAX_VALUE)、その積は の範囲内になりますint

オーバーフローとアンダーフローを検出するためのより洗練された方法が可能ですが、クラスの演習では、そのような前提条件は問題ないようです。

于 2016-11-06T14:10:54.140 に答える