반응형

다음과 같은 무한 수열을 계산하는 순환적인 프로그램을 작성하라.

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;
= 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

+ Recent posts