컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post C언어 에러 해결] error C2065: 'M_PI' : undeclared identi...C언어] 원주율(PI;파이) 근사값 상수, M_PI 출력 예제Java/자바] main()의 String args[] 배열 용도, 사용법 예제자바스크립트] 숫자 배열, 크기 순 정렬/내림차순 소트; Sort Number Array,...자바스크립트] 문자열 배열, 가나다 순 정렬/내림차순 소팅; Sort String Arra...Java/자바] 문자열 배열 선언, 초기화 예제; String Array비베-VBS-VBA-QBasic 주석 기호; 코멘트 Comment, Remark울트라에디트 사용자 환경 설정파일 위치; UltraEdit-32 Config, ini Fi...윈도우에서 UTF-8 (UTF8) 유니코드 인코딩 txt 파일 읽기; Unicode Fil...배치파일] 옵션 문자열 얻기, 실행시 매개변수 활용 DOS-NT Batch File Opt...

C언어] 원주율(PI) 계산 소스; 소수점 이하 799 자리까지 파이 값 구하기

Friday, November 10, 2006

원주율 계산 소스가 별로 많지 않더군요. 위키를 뒤져보다가 다음과 같은 소스를 발견했습니다.



Original Source: < Digits of pi calculation - CodeCodex >

원주율(파이 값) 소수점 799자리까지 구하는 예제


소스 파일명: 0.cpp
#include <stdio.h>

#define SCALE      10000
#define MAX_ARRAY   2800
#define ARRAY_INIT  2000


int main(void) {
  int i, j, sum, carry = 0;
  int array[MAX_ARRAY + 1];

  for (i = 0; i <= MAX_ARRAY; ++i) array[i] = ARRAY_INIT;  // array 배열 초기화

  for (i = MAX_ARRAY; i; i -= 14) {
    sum = 0;
    for (j = i; j > 0; --j) {
      sum = sum * j + SCALE * array[j];
      array[j] = sum % (j * 2 - 1);
      sum /= (j * 2 - 1);
    }

    printf("%04d", carry + sum / SCALE);
    carry = sum % SCALE;
  }

  return 0;
}



컴파일 및 실행 결과:
D:\Z>cl 0.cpp && 0.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

0.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:0.exe
0.obj
31415926535897932384626433832795028841971693993751058209749445923078164062862089
98628034825342117067982148086513282306647093844609550582231725359408128481117450
28410270193852110555964462294895493038196442881097566593344612847564823378678316
52712019091456485669234603486104543266482133936072602491412737245870066063155881
74881520920962829254091715364367892590360011330530548820466521384146951941511609
43305727036575959195309218611738193261179310511854807446237996274956735188575272
48912279381830119491298336733624406566430860213949463952247371907021798609437027
70539217176293176752384674818467669405132000568127145263560827785771342757789609
17363717872146844090122495343014654958537105079227968925892354201995611212902196
08640344181598136297747713099605187072113499999983729780499510597317328160963185



소수점 이하 799자리까지 정확하게 출력되었습니다. (소수점 제외하고) 정수부의 3까지 포함하면 800자리가 됩니다.


그런데 위의 결과에서는
3141592...
이렇게 소수점이 나오지 않았습니다.

그래서 위의 값을 실제 사용할 때에는
3.141592...
이렇게 점을 찍어서 사용해야 합니다.




참고:

< 원주율 - 위키백과 >

< Pi - Wikipedia >



프로그래밍 언어에는 PI 근사값 상수가 이미 정의되어 있기에, 대부분의 경우 그 상수를 사용하면 됩니다: ▶▶ C언어] 원주율(PI;파이) 근사값 상수, M_PI 출력 예제


☞ C/C++

1 Comments:
At 9:52 PM, Blogger 해파리군 said...

ㄳㄳ.
소숫점 20000자리까지 성공시켰어욤.

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top