반응형
다음과 같은 무한 수열을 계산하는 순환적인 프로그램을 작성하라.
1/1 + 1/2 + 1/3 + ... + 1/n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> double harmonic(int x); int main(void) { int n=0; printf("n값을 입력하세요: "); scanf("%d", &n); printf("%lf\n", harmonic(n)); return 0; } double harmonic(int x) { double a; static double sum=0; a = 1/(double)x; sum+=a; if(x>1)//0으로 나누는 것은 금지됨 { harmonic(x-1); } return sum; } | cs |
그러나 이것은 큰 숫자를 입력하면 프로그램이 동작을 멈추게 된다. 따라서 순환적인 프로그램 보다는 반복문을 사용하는 것이 더 낫다.(큰 숫자의 계산도 가능하다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> double harmonic(int x); int main(void) { int n; printf("n을 지정하시오"); scanf("%d", &n); printf("결과값은 %lf입니다.\n", harmonic(n)); return 0; } double harmonic(int x) { double sum = 0; double i; for(i=1;i<=x;i++) { sum +=(1/i); } return sum; } | cs |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
삼각수 구하기 (0) | 2016.08.04 |
---|---|
입출금 프로그램 (0) | 2016.08.04 |
정적 지역 변수 초기화 (0) | 2016.08.04 |
주사위 던지기 (0) | 2016.08.03 |
연산 횟수를 세는 계산기 (0) | 2016.08.03 |