我想问一个非常简单的问题 用于计算任意数量的阶乘的简单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;
有人可以帮帮我吗?
答案 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
。