2013-11-10 1 views
1

Я хочу задать очень простой вопрос.
Простой C++ код для вычисления факториала любого числа выглядит следующим образом:C++ как распечатать вывод факториала рекурсивно

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

Образец пробег fctrl = 4, то выход, как это «4 = 24!»
Я не хочу таким образом, вместо этого я хочу, чтобы он печатался так: «4x3x2x1 = 24»

Может кто-нибудь мне помочь?

ответ

1

Вы можете просто изменить свой цикл:

for(int q = factrl; q >= 1; q--){ 
    rslt = rslt * q; 
    cout << q; 
    if(q != 1) cout << "x"; 
} 
cout << "=" << rslt << endl; 
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 в конце заявления.

+1

О, так вот история ... Я так пробовал это раньше, но она продолжает подсказывать exrra x в конце. btw благодарит много брата –