Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Visual Studio

백준 온라인 저지: 13073 Sums 본문

Problem Solving

백준 온라인 저지: 13073 Sums

emacser 2022. 6. 7. 22:23
 

13073번: Sums

For each test case, print three space separated integers S1, S2, S3 in one line where S1 : the sum of first N positive integer, S2 : the sum of first N positive odd integer, S3 : the sum of first N positive even integer.

www.acmicpc.net

각 테스트 케이스마다 주어지는 정수 N(1 <= N <= 10000)에 대해 다음 세개의 값을 한줄로 출력한다.

S1: 처음 N개의 양의 정수의 합

S2: 처음 N개의 홀수인 양의 정수의 합

S3: 처음 N개의 짝수인 양의 정수의 합

 

// 입력 형태
// 첫줄에는 테스트 케이스의 개수인 T (1<= T <= 10000)
// 두번째 줄부터 T개의 줄에 1<= N <= 10000인 양의 정수 N이 주어진다.

// 출력 형태
// T개의 N에 대해
// S1 S2 S3
// 의 형태로 출력하면 된다. S1, S2, S3는 다음과 같다.
// S1: 처음 N개의 양의 정수의 합
// S2: 처음 N개의 홀수인 양의 정수의 합
// S3: 처음 N개의 짝수인 양의 정수의 합

#include <cstdio>

int main()
{
	int T;
	scanf("%d", &T);
	for (int i = 0; i < T; ++i)
	{
		int N;
		scanf("%d", &N);

		printf("%d %d %d\n", N * (N + 1) / 2, N * N, N * (N + 1));
	}
}

 

간단한 등차수열의 합이다.

 

S2와 S3의 "처음 N개"를 "N까지"로 바꾸면 다음과 같이 풀수 있다.

// 응용
// S2: N보다 작거나 같은 양의 정수의 합
// S3: N보다 작거타 같은 짝수인 양의 정수의 합

#include <cstdio>

int main()
{
	int T;
	scanf("%d", &T);
	for (int i = 0; i < T; ++i)
	{
		int N;
		scanf("%d", &N);

		printf("%d %d %d\n", N * (N + 1) / 2, (N / 2) * (N / 2), (N / 2) * (N / 2 + 1));
	}
}