64,701
社区成员
发帖
与我相关
我的任务
分享
double Pi()
{
int i;
long num_steps = 40000000;
double x, pi, step, sum = 0.0;
step = 1.0 / (double) num_steps;
omp_set_num_threads(NUM_THREADS);
#pragma omp parallel for reduction(+:sum) private(x)
for (i = 0; i < num_steps; ++ i)
{
x = (i - 0.5) * step;
sum += 4.0 / (1.0 + x * x);
}
pi = step*sum;
return pi;
}
void fun2()
{
double sum;
sum=Pi();
std::cout<<"result is :"<<sum<<std::endl;
}
int main(int argc, char** argv)
{
clock_t t1=clock();
fun2();
clock_t t2=clock();
std::cout<<"time: "<<difftime(t2,t1)<<std::endl;
//system("pause");
}