#include
using namespace std;
void main (void)
{
double j[12]={5.98,1.08,1.04,2.913,2.913,2.913,2.913,2.913,51.463,0.6,1.115,3.944};
double k[11]={8.2e5,392.2e5,112.78e5,112.78e5,112.78e5,112.78e5,169.66e5,0.5e5,0.5e5,50.29e5};
double a[12]={1};
for(int w=0;w<1e10;w++)
{
double c[12]={8.2e5};
for(int i=0;i<11;i++)
{
c[i+1]=a[i]*j[i]+c[i];
a[i+1]=a[i]-(c[i]*w*w)/k[i];
}
if(c[11]/c[10]>0&&c[11]/c[10]<0.005)
cout<
system("pause");
}
因为你的 for(int w=0;w<1e10;w++) W取值范围太大,计算机运算时间较长,我测到1e8的时候,要30秒,结果和1e5是一样的150822102211221222132214
加断点调试吧。