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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector