-1

私はクラスのラボ用に書かれたプログラムを取得しようとしてきましたが、ほぼそれを持っていると思いますが、除数 (コード内の div) を合計に加算せず、完全な場合は true を返します。番号、それ以外の場合は false。私のコードはコンパイルして正常に実行されますが、おそらく sum が 1 のままであるため、false のみが返されます (1 はすべての数値の除数であるため、1 で初期化されます)。number は、コンストラクターと set ステートメントから取り込まれたプライベート int です。

  public boolean isPerfect()
  {
    int x = number -1 ;
    int div = 0;
    int sum = 1;
    while(x> 1)
    {
        if(number % x == 0)
        {
            div =  x;
            sum=+ div;
        }
        x--;
    }
    if(sum == number)
    {
        return true;
    }
    else
    {
        return false;
    }
  }
4

3 に答える 3

3

これは逆です。 sum =+ div;する必要がありますsum += div;

あなたが持っているものは基本的sum = (+div)に、つまりポジティブdivです。

于 2012-11-01T20:36:18.147 に答える
0

sum= sum + div; とすることができます。または合計 += div;

また、あなたの数値変数はどこに定義されているのでしょうか public boolean isPerfect(int number) のようなものだと思います

于 2012-11-01T20:43:02.183 に答える