2 jiankeabcd jiankeabcd 于 2016.05.11 13:25 提问

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\n" として書き出せ。

【例】
输入例
1000

输出例
1000:3.141549000000000

5个回答

herozhangbz
herozhangbz   2016.05.11 13:57
已采纳
     int n,x,y;
    long count;
    double pi;
    printf("请输入一个整数\n");
    scanf("%d",&n);
    for(x=-n,count=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);
caozhy
caozhy   Ds   Rxr 2016.05.11 13:30
CSDNXIAOD
CSDNXIAOD   2016.05.11 13:32

计算圆周率 Pi (π)值, 精确到小数点后 10000 位(C语言)
计算圆周率 Pi (π)值
计算圆周率 Pi (π)值
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq423399099
qq423399099   Ds   Rxr 2016.05.11 13:35
 #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;
}
herozhangbz
herozhangbz   2016.05.11 13:57
    int n,x,y;
    long count;
    double pi;
    printf("请输入一个整数\n");
    scanf("%d",&n);
    for(x=-n,count=0;x<n;x++)
        for(y=-n;y<n;y++)
            count++;
    pi=count/(double)n/(double)n;
    printf("圆周率为%lf",pi);

结果并不是很精确

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!