Очень плохо знаком с C ++. Делая эту факториальную программу, я каким-то образом просмотрел код и что-то создал, но возвращаемое значение всегда в 10 раз больше правильного. Например, факториал для 5 рассчитывается по 1200 вместо 120, а факториал по 3 — по 60. Почему дополнительная единица?
Это код:
#include <iostream>
using namespace std;
int main() {
int i, j, num;
cout << "Compute factorial: " << endl;
cin >> num;
for (i=1; i<num; i++){
for (j=num; j>1; j--)
num *=(j-i);
cout << num;
}
return 0;
}
Все, что вам нужно, это одна петля. Этот путь должен быть намного проще.
#include <iostream>
using namespace std;
int main() {
int i, j=1, num;
cout << "Compute factorial: " << endl;
cin >> num;
for (i=num; i>0; i--){
j *= i;
}
cout << j << endl;
}
for (i=1; i<num; i++){
num *=i;
}
Этого должно быть достаточно
Я думаю, что вы не совсем понимаете цикл, и будьте осторожны с изменением числа
попробуйте этот кусок кода, надеюсь, это поможет
#include <iostream>
using namespace std;
int main() {
int i, j, num;
cout << "Compute factorial: " << endl;
cin >> num;
int output_num = 1;
for (i=1; i<=num; i++){
output_num *= i;
}
cout << output_num;
return 0;
}
Используйте этот код:
#include<iostream>
using namespace std;
int main()
{
int num,fact=1;
cout<<" Enter the no. to find its factorial:";
cin>>num;
for(int a=1;a<=num;a++)
{
fact=fact*a;
}
cout<<"Factorial of a given Number is ="<<fact<<endl;
return 0;
}
Выход :
использование двух циклов для вычисления факториала очень сложно ….. и вам это не нужно.
Попробуй это
#include <iostream>
using namespace std;
int main() {
int i,num;
cout << "Compute factorial: " << endl;
cin >> num;
for(i=num;i>1;--i)
num*=(i-1);
cout << num;
return 0;
}