0

ネストされたループのセットを単一の方程式に変換しようとしていますが、助けが必要です。

シーケンスを計算するコードは次のとおりです。

`

int Astart = 1;
int Bstart = 1;
int Cstart = 1;
int Dstart = 1;

int Ai = 6;
int Bi = 2;
int Ci = 3;
int Di = 4;

int A,B,C,D = 0;

int i=0;
for(int a=Astart;a<Astart+Ai; a++)
{
    for(int b=Bstart;b<Bstart+Bi; b++)
    {
        for(int c=Cstart;c<Cstart+Ci;c++)
        {
            for(int d=DStart;d<Dstart+Di;d++)
            {
                std::cout << "[" << i << "]" << a << " " << b << " " << c << " " << d << std::endl;
                i++;
            }
        }
    }
}

`

私がする必要があるのは、ネストされたループの動作を複製するために、いくつかの順列を実行する単一のforループを持つことです。すなわち

for(int i=0; i<(Ai*Bi*Ci*Di); i++)
{

<Insert equations here!>

}

私が本当に求めているのは、シーケンス内の整数を受け取り、変数Ai、Bi、Ci、DiおよびAstart、Bstart、Cstart、Dstartに基づいてA、B、C、およびDの値を計算する関数です。

また、このシステムはネストされたループの順序に依存していますが、値A、B、C、Dを取得する順序に依存しない方法はありますか?

どんな助けも素晴らしいでしょう、

ありがとう、

クリス。

4

2 に答える 2

3

除算( )演算子/と剰余(%)演算子を使用します。

93 / 10 = 9
93 % 10 = 3

..。

于 2012-07-04T22:04:18.917 に答える
0

変数、、、AおよびはB、初期化して二度と使用しないため、常にゼロです。CD

于 2012-07-04T22:09:09.437 に答える