計算圓周率c語言答辯,利用c語言計算圓周率

本文目錄一覽:

求用三種方法計算圓周率(C語言)

給你個C程序吧:

#include stdio.h

long a=10000,b,c=2800,d,e,f[2801],g;

void main()

{

for(;b-c;)

f[b++]=a/5;

for(;d=0,g=c*2;c-=14,printf(“%04d”,e+d/a),e=d%a)

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

}

PI=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185…

C語言求圓周率

#include stdio.h

int main()

{

    float f;

    double pi,i,sign;

    while(scanf(“%f”,f)==1)

    {

        pi=0;

        i=1;

        sign=1;

        do

        {

            pi+=sign*1.0/i;

        }while(1.0/i=f(sign=-sign)(i+=2));

        printf(“%lf\n”,pi*4.0);

    }

    return 0;

}

C語言計算圓周率

計算溢出了。你的 fact 和 multi 都使用整數保存計算結果,參數稍大一點就超出整數表示範圍了,於是溢出變成負數。

你把這兩個函數改成 double 類型,內部變量 res 也聲明成 double,就能算出正確結果了。

計算圓周率的C語言程序

#include stdio.h

#define L 10000 //求10000位PI值

#define N L/4+1

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

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

John Wallis的圓周率公式:

//詳細看網站介紹:

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;

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/257123.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:43
下一篇 2024-12-15 12:43

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python利用級數計算圓周率

    本文將詳細介紹Python利用級數計算圓周率的方法,旨在幫助Python開發者更好地理解級數原理。 一、Leibniz公式計算圓周率 Leibniz公式是一種基於級數的求圓周率的方…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論