C++ 大数除法返回1[c+;+;]
我是新来的,如果我的问题有点愚蠢,我很抱歉,但是,我在计算两个大数字的除法,并将它们存储在一个数组中,如下所示:C++ 大数除法返回1[c+;+;],c++,largenumber,C++,Largenumber,我是新来的,如果我的问题有点愚蠢,我很抱歉,但是,我在计算两个大数字的除法,并将它们存储在一个数组中,如下所示: int det(double M[25][25], int m) { /*returns large numbers*/ } int main() { float y[27]; double A[25][25] = {0}, N = 26, D = -134430487042201894894174208; y[0] = 0; y[26]
int det(double M[25][25], int m)
{
/*returns large numbers*/
}
int main()
{
float y[27];
double A[25][25] = {0}, N = 26, D = -134430487042201894894174208;
y[0] = 0;
y[26] = 1;
for (int i = 0; i < N-1; i++)
{
//Reset A[][] to the original
for (int k = 0; k < N-1; k++)
{
for (int J = 0; J < N-1; J++)
{
A[k][J] = m[k][J];
}
}
//Change values of A[j][i]
for (int j = 0; j < N-1; j++)
{
A[j][i] = d[j+1];
}
y[i+1] = det(A,N-1)/D; //Here y returns only 0, 1, 1, 1, 1, ...
}
}D
int det(双M[25][25],int M)
{
/*返回大数*/
}
int main()
{
浮动y[27];
双A[25][25]={0},N=26,D=-134430487042201894894174208;
y[0]=0;
y[26]=1;
对于(int i=0;i
那么,我做错了什么?y数组返回0,1,1,1,而且应该不是1
det(A,N-1)=7958284334509567005163520
D=-134430487042201894894174208
数据(A,N-1)/D=-0.05919962925910919588358550934832269497780932400145347
不是1
谢谢 函数det正在返回一个int。您永远无法从中获取浮点值。函数det正在返回一个int。您永远无法从中获取浮点值。常量
134430487042201894894174208
在大多数平台上都无法表示。这些数字看起来非常大。检查正在使用的数据类型的名称。您可能需要一个bignum库来获得相当准确的结果。您的示例无法编译<未定义代码>m和d
。请提供帮助。如果-134430487042201894894174208
-134430487042201894894174208.0帮助我认为你无法存储这么大的数字-134430487042201894894174208
常量134430487042201894894174208
在大多数平台上都无法表示。这些数字看起来非常大。检查正在使用的数据类型的名称。您可能需要一个bignum库来获得相当准确的结果。您的示例无法编译<未定义代码>m和d
。请提供一个。如果-134430487042201894894174208
->-134430487042201894894174208.0
帮助,请试一试。我认为你不能存储这么大的号码-134430487042201894894174208
你裁定了!谢谢,你统治了它!谢谢