0

次のような配列を使用するプログラムがあります。

1,2,3,4,5

私は数字「10」を持っています。私がしたいことは、配列からその数字を引くことです。

説明が難しいのですが、その引き算で配列の複数の要素を使っています。これは起こらなければならないでしょう:

   10 - 5 = 5 (array looks now like this => 1,2,3,4)
   5  - 4 = 1 (array looks now like this => 1,2,3)
   3  - 1 = 2 (array looks now like this => 1,2,2)

要約として:

これ: 1,2,3,4,5 から 10 を引くと 1,2,2 になります

しかし、どうすればこれを行うことができますか?プログラミング言語はC#

編集 :

入力 =

1. 要素として 5 つの整数を持つ配列: 1、2、3、4、および 5 2 。数字の 10 (整数)

プロセス =

  1. 最後の値から 10 を引き、その結果の数値を配列の次の要素から引き、'10' がなくなるまで続けます。

出力 =

1,2,3,4,5 の代わりに => 1,2,2 (カンマで配列の要素を区切ります)

4

2 に答える 2

0

私があなたを理解したかどうかはわかりませんが、これを試してください:

private void SubstractNumberFromArray(List<int> array, int number)
{
    //array.Sort();
    for (int i = array.Count - 1; i >= 0; i--)
    {
        int toSubstract = Math.Min(number, array[i]);
        array[i] -= toSubstract;
        if (array[i] == 0)
            array.RemoveAt(i);
        number -= toSubstract;

        if (number == 0)
            break;
    }

    if (number != 0)
        throw new Exception("Can't substract!");

}
于 2013-08-05T12:49:11.553 に答える