c ++如何递归地打印析构程序的输出

时间:2013-11-10 14:47:59

标签: c++ output factorial

我想问一个非常简单的问题 用于计算任意数量的阶乘的简单c ++代码如下:

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

fctrl = 4的示例运行,输出如下&#34; 4!= 24&#34;
我不想那样,而是希望它像这样打印&#34; 4x3x2x1 = 24&#34;

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

你可以修改你的循环:

for(int q = factrl; q >= 1; q--){
    rslt = rslt * q;
    cout << q;
    if(q != 1) cout << "x";
}
cout << "=" << rslt << endl;

答案 1 :(得分: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