1

とても簡単な質問をしたいです。
任意の数の階乗を計算する単純な C++ コードは次のとおりです。

rslt=1;
for(q=fctrl;q>=1;q--)
{
 rslt=rslt*q;
}
cout<<fctrl<<"! = "<<rslt;

fctrl=4 のサンプル実行、出力は次のようになります "4!=24"
そのようにしたくない代わりに、このように出力したい "4x3x2x1=24"

誰か助けてくれませんか??

4

2 に答える 2

1

ループを変更するだけです:

for(int q = factrl; q >= 1; q--){
    rslt = rslt * q;
    cout << q;
    if(q != 1) cout << "x";
}
cout << "=" << rslt << endl;
于 2013-11-10T14:51:08.727 に答える
1

まず、再帰アルゴリズムがありません。これは反復ソリューションです。

あなたが望むものを達成するには、その中に現在のループ変数を出力するだけです:

rslt=1;
for(q=fctrl;q>=1;q--)
{
   rslt=rslt*q;

   // output q
   cout << q;
   if(q != 1)
   {
       cout << "x";
   }
}
cout<<" = "<<rslt;

条件は、文の最後にif(q != 1)余計なことを書かないようにするためのものです。x

于 2013-11-10T14:51:15.950 に答える