導航:首頁 > 軟體知識 > 如何編一個計算圓周率的程序

如何編一個計算圓周率的程序

發布時間:2022-12-23 15:09:10

Ⅰ 用C語言編一個計算圓周率的程序,用戶輸入指定位數,並計算到指定位數(精度不夠可以用整數)

#include "stdio.h"

#include <stdlib.h>

#include <string.h>

int main(int argc,char *argv[]){

int a,b,c,d,e,f[2801],g,i,n;

char pi[801]="",t[5]="";

for(a=10000,b=0,c=2800;b-c;f[b++]=2000);//a/5

for(i=e=0;d=0,g=c*2;c-=14,e=d%a){

for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);

n=e+d/a,t[0]=t[1]=t[2]=t[3]='';

n<10 ? t[0]=t[1]=t[2]='0',i=3 : n<100 ? t[0]=t[1]='0',i=2 : n<1000 ? t[0]='0',i=1 : i=0;

itoa(n,t+i,10);

strcat(pi,t);

}

printf("Please enter the length n(int 0<n<800)... n=");

if(scanf("%d",&n)!=1 || n<1 || n>800){

printf("Input error, exit... ");

return 0;

}

for(i=0;i<n;printf("%c",pi[i++]));

printf(" ");

return 0;

}

代碼格式和運行樣例圖片:

Ⅱ 用C語言寫出計算圓周率的程序

double s = 0;//面積
double pi = 0;//圓周率
double d=200;//直徑(值越大圓周率越精確)
double r = d/2;//半徑
for(int i=1;i<=d;i++){
for(int j=1;j<=d;j++){
if((i-r)*(i-r)+(j-r)*(j-r)<=r*r){
s++;
}
}
}
pi = s/(r*r);

Ⅲ 計算圓周率的C語言程序

#include <stdio.h>
#define L 10000 //求10000位PI值
#define N L/4+1

// L 為位數,N是array長度

/*圓周率後的小數位數是無止境的,如何使用電腦來計算這無止境的小數是一些數學家與程式設計師所感興趣的,在這邊介紹一個公式配合 大數運算,可以計算指定位數的圓周率。

John Wallis的圓周率公式:
//詳細看網站介紹:https://ke..com/item/%E5%9C%86%E5%91%A8%E7%8E%87/139930?fr=aladdin
PI = [16/5 - 16 / (3*53) + 16 / (5*55) - 16 / (7*57) + ......] - [4/239 - 4/(3*2393) + 4/(5*2395) - 4/(7*2397) + ......]

*/
void add ( int*, int*, int* );
void sub ( int*, int*, int* );
void div ( int*, int, int* );

int main ( void )
{
int s[N+3] = {0};
int w[N+3] = {0};
int v[N+3] = {0};
int q[N+3] = {0};
int n = ( int ) ( L/1.39793 + 1 );
int k;

w[0] = 16*5;
v[0] = 4*239;

for ( k = 1; k <= n; k++ )
{
// 套用公式
div ( w, 25, w );
div ( v, 239, v );
div ( v, 239, v );
sub ( w, v, q );
div ( q, 2*k-1, q );

if ( k%2 ) // 奇數項
add ( s, q, s );
else // 偶數項
sub ( s, q, s );
}

printf ( "%d.", s[0] );
for ( k = 1; k < N; k++ )
printf ( "%04d", s[k] );
printf ( "\n" );
return 0;
}

void add ( int *a, int *b, int *c )
{
int i, carry = 0;

for ( i = N+1; i >= 0; i-- )
{
c[i] = a[i] + b[i] + carry;
if ( c[i] < 10000 )
carry = 0;
else // 進位
{
c[i] = c[i] - 10000;
carry = 1;
}
}
}

void sub ( int *a, int *b, int *c )
{
int i, borrow = 0;
for ( i = N+1; i >= 0; i-- )
{
c[i] = a[i] - b[i] - borrow;
if ( c[i] >= 0 )
borrow = 0;
else // 借位
{
c[i] = c[i] + 10000;
borrow = 1;
}
}
}

void div ( int *a, int b, int *c ) // b 為除數
{
int i, tmp, remain = 0;
for ( i = 0; i <= N+1; i++ )
{
tmp = a[i] + remain;
c[i] = tmp / b;
remain = ( tmp % b ) * 10000;
}
}

Ⅳ C語言計算圓周率

#include<stdio.h>
#include<math.h>
intmain(){
doublep=0,q=0;
inti;
for(i=1;;i++){
p+=6*1.0/(i*i);
q+=4*1.0*pow(-1,i+1)/(2*i-1);//q後面少一個+
if(fabs(sqrt(p)-q)<1e-6)
break;
}
printf("PIis%lf,項數為%d",q,i);
return0;
}

Ⅳ 用C語言編寫一個求圓周率的程序

#include<stdio.h>
main()
{ float s,r,PI;
clrscr();
printf("input周長 s");
scanf("%f",&s);
printf("input半徑 r");
scanf("%f",&r);
PI=s/(2*r);
pringf("周長=%f,半徑=%f\n圓周率PI=%f",s,r,PI);

}

閱讀全文

與如何編一個計算圓周率的程序相關的資料

熱點內容
int是什麼意思技術 瀏覽:535
保險公司為什麼現在都搞代理制 瀏覽:8
在南昌學個什麼技術好 瀏覽:349
副屏幕的程序怎麼刪除 瀏覽:169
校園代理什麼工作好 瀏覽:875
東營哪裡可以交易錢幣 瀏覽:621
前列泰膠囊市場價多少錢 瀏覽:391
如何對待交易策略 瀏覽:569
這些數據你知道多少 瀏覽:893
電信小程序需要什麼證件 瀏覽:827
禁用驅動程序強制簽名怎麼啟用 瀏覽:781
自動同步數據的數據在哪裡 瀏覽:504
公司機票代理怎麼賺錢 瀏覽:806
瑞精密技術有限公司怎麼樣 瀏覽:295
投標代理公司什麼責任 瀏覽:944
反饋信息能保持多久 瀏覽:96
2050職業技術類院校如何報名 瀏覽:17
端面切槽程序怎麼編 瀏覽:869
谷歌地球有多少數據 瀏覽:295
相親怎麼發信息說對方忙 瀏覽:661