我想问一个非常简单的问题。
计算任意数的阶乘的简单 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