[Algorithm] 여러가지 수열의 합계 (다양한 유형)

1번문제 : 1 ~ 100까지의 합계 (1+2+3+4···+100)

0에서 1씩 증가시켜 100까지 변경되는 수열을 더하려면 두개의 변수를 선언하셔야 합니다. 변수 i에는 수열의 각항을 만들기 위하여 반복문을 사용하여 +1씩 더하여주고, 또다른 변수 Sum에는 수열의 각 항이 1씩증가할때마다 그값을 누적하여 저장하면 됩니다.

C언어 / C++ 코드

#include <stdio.h>
main(){
	int i,sum; //정수형변수 i와 sum을 선언
	i=0; sum=0; //i와 sum을 0으로 초기화
	
	do{
		i++; //i를1씩 증가
		sum +=i; //sum값에 i를 누적시켜 저장 
	}while(i<100); //조건
	
	printf("sum값:%d i값:%d",sum,i); //출력문
}

결과1

 

 

2번문제 : 수열 (1-2+3-4···+99-100)의 합계

0에서 1씩 증가하여 100까지 변경되는 수열 중 한번은 더하고, 한번은 빼는 작업은 번갈아서 반복할 경우에는 스위치 변수를 사용하면 됩니다. 이 스위치 변수를 수열의 항과 곱해줌으로써 부호를 전환하여 SUM변수의 값에 넣어주면 됩니다.

C언어 / C++ 코드

#include <stdio.h>
main(){
	int i,sum; //정수형변수 i와 sum을 선언
	i=0; sum=0; //i와 sum을 0으로 초기화
	int sw = 1; //스위치변수 sw를 1로 초기화 
	do{
		i++; //i를1씩 증가
		sum = sum+(i*sw); //sum값에 i와 스위치변수를 곱한 값을 누적시켜 저장
		sw *= -1;
	}while(i<100); //조건
	
	printf("sum값:%d i값:%d",sum,i); //출력문
}

결과2

 

 

3번문제 : 수열 -(1/2)+(2/3)-(3/4)+(4/5)···-(99/100)의 합계

이 수열은 분자를 1~99까지 증가시키고 분자에 1을 더해 분모를 만들면 됩니다. 분자가 홀수이면 누적된 값에서 빼고, 짝수이면 누적된 값에 더하는 작업을 분자가 99가 될떄까지 반복하는 문제입니다. 두개의 변수를 선언하여 한개의 변수 i는 수열 각항의 분자값이 1~99까지 증가할수있도록 1씩 더하고, 다른 한개의 변수 J는 수열의 각항이 누적될 수 있도록 합니다.

C언어 / C++ 코드

#include <stdio.h>
main()
{
	float i=0; float sum=0; //실수형변수 i와 sum을 선언하여 0으로 초기화
	
	do{
		i++;
		if((int)i/2 ==i/2){ //(int)i/2)와 i/2의 값 비교
			sum+=i/(i+1); 
		}else{
			sum-=i/(i+1);
		}
	}while(i<99);
	
	printf("sum값:%f i값:%f",sum,i); //출력문
}

결과3

 

 

4번문제 : 일정한 비율로 증가하는 수열(1+2+4+7+11+16··· +100)

C언어 / C++ 코드

#include <stdio.h>
main()
{
	int i=0; int j=1; int sum=1; //변수초기화 
	do
	{
		i++;
		j+=i;
		sum+=j;
	}while(i<99);
	printf("i의값:%d j의값:%d sum의값:%d",i,j,sum);
}

결과4

 

댓글

Designed by JB FACTORY