とても簡単な質問をしたいです。
任意の数の階乗を計算する単純な C++ コードは次のとおりです。
rslt=1;
for(q=fctrl;q>=1;q--)
{
rslt=rslt*q;
}
cout<<fctrl<<"! = "<<rslt;
fctrl=4 のサンプル実行、出力は次のようになります "4!=24"
そのようにしたくない代わりに、このように出力したい "4x3x2x1=24"
誰か助けてくれませんか??
ループを変更するだけです:
for(int q = factrl; q >= 1; q--){
rslt = rslt * q;
cout << q;
if(q != 1) cout << "x";
}
cout << "=" << rslt << endl;
まず、再帰アルゴリズムがありません。これは反復ソリューションです。
あなたが望むものを達成するには、その中に現在のループ変数を出力するだけです:
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