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 回答