问题描述
- c语言 计算圆周率π 的值
- 对于正整数n,在原点为圆心的一个半径n的圆盘内(包括圆周内的点)的整数格子点的个数设为C(n),n →∞的时候C(n) / n2接近圆周率。
基于这个求圆周率的近似值
输入一个n,C(n) / n2做为double型输出,C(n)为long型【入力】
正整数 n 1つ。【出力】
n と C(n) / n2 とを,書式を ""%d:%.15f
"" として書き出せ。【例】
输入例
1000输出例
1000:3.141549000000000
解决方案
int nxy; long count; double pi; printf(""请输入一个整数
""); scanf(""%d""&n); for(x=-ncount=0;x<n;x++) for(y=-n;y<n;y++) if((x*x+y*y)<n*n) count++; pi=count/(double)n/(double)n; printf(""圆周率为%lf""pi);
解决方案二:
http://blog.csdn.net/augusdi/article/details/12438159
解决方案三:
计算圆周率 Pi (π)值 精确到小数点后 10000 位(C语言)
计算圆周率 Pi (π)值
计算圆周率 Pi (π)值
解决方案四:
#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int main(){ const int MAX_TIMES = 200000000; srand(static_cast<unsigned int>(time(0))); int inside = 0; for(int i = 0; i < MAX_TIMES; ++i) { double x = static_cast<double>(rand()) / RAND_MAX; double y = static_cast<double>(rand()) / RAND_MAX; if(x * x + y * y <= 1.0) ++inside; if(i % (MAX_TIMES / 100) == 0) cout << '.'; } double pi = 4.0 * inside / MAX_TIMES; cout << ""/nPI = "" << pi << endl; return 0;}
解决方案五:
int nxy; long count; double pi; printf(""请输入一个整数
""); scanf(""%d""&n); for(x=-ncount=0;x<n;x++) for(y=-n;y<n;y++) count++; pi=count/(double)n/(double)n; printf(""圆周率为%lf""pi);
结果并不是很精确
时间: 2024-09-11 23:38:11