본문 바로가기
⌨️ Algorithm/C

1/25 [C] 백준 1834번 - 나머지와 몫이 같은 수

by Lucy Oh 2022. 1. 25.

<문제>

https://www.acmicpc.net/problem/1834

 

1834번: 나머지와 몫이 같은 수

N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.

www.acmicpc.net

 

<내가 제출한 코드>

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	long long n;
	scanf("%lld", &n);

	printf("%lld", n*(n-1)*(n+1)/2);
}

간단한 식을 찾아야 된다는 점이 첫번째,

수가 매우 커지기 때문에 long long형 정수를 써야한다는 점이 두번째 

이 둘을 잘 고려하면서 문제를 풀어야 함.

 

n=3일때는 4+8 = 4*(1+2)이고

n=4일때는 5+10+15 = 5*(1+2+3) 이고,

n=5일때는 6+12+18+24 = 6*(1+2+3+4) 이다.

 

즉 n 일때 (n+1) * (1에서 n-1까지 더한 값) 이므로 식을 (n+1) * n * (n-1) / 2 라고 구해줄 수 있었다.

댓글