Я хочу задать очень простой вопрос.
Простой код 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
в конце заявления.