我正在尝试计算如果我有面积为 4195065486 平方毫米且厚度为 1 毫米的皮革可以制造的球的半径,从半径 = 1 毫米的小球开始,制造商可以将皮革包裹成多层围绕球。我编写了这段代码来获取可以制作的球的半径以及皮革上剩余的区域。(假设 pi=3.14159)。
double A, r;
const double pi=3.14159;
double AreaCalc(double r);
int main(){
A=4195065486.0;
r=1.0;
double final_r = AreaCalc(r);
cout<<final_r<<" "<<A<<" "<<endl;
return 0;
}
double AreaCalc(double r){
double ca;
ca=4*pi*r*r;
if (A-ca>=0.0){
A=A-ca;
AreaCalc(r+1);
}
else return r;
}
是否存在可能导致结果不准确的截断或影响A
?通过调试,我可以得到 A=12559904.940002432。