#include <iostream>
#include <cmath>
using namespace std;
int Factorial_of(int n)
{
int fact = 1, i;
for(i=1; i<=n; i++)
fact = fact * i;
return fact;
}
int main()
{
cout << Factorial_of(4) / (Factorial_of(10) * Factorial_of(abs(4-10))) << endl;
}
有人知道为什么这是打印0吗?
更新:
在更改了基于@M.Twarog的答案的代码之后,它现在输出的是"9.18577e-009“,有人知道为什么吗?
发布于 2022-01-26 00:46:00
#include <iostream>
#include <cmath>
using namespace std;
double Factorial_of(int n)
{
double fact = 1;
int i;
for(i=1; i<=n; i++)
fact = fact * i;
return fact;
}
int main()
{
double res=Factorial_of(4) / (Factorial_of(10) * Factorial_of(abs(4-10)));
cout<<res;
}
有一些错误/错误。除法的第一步总是用双变量。并且您的代码正在返回值,所以返回类型应该是双倍的。此外,在<<
之前的cout
语句中,您也错过了endl
。
发布于 2022-01-26 01:15:36
我可以解释修复后得到的输出:这是正确的答案。
https://stackoverflow.com/questions/70857434
复制相似问题