728x90
1. 문제
1834번: 나머지와 몫이 같은 수
N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.
www.acmicpc.net
2. 코드
using System;
class BJ1834
{
static void Main()
{
long n = long.Parse(Console.ReadLine());
long sum = ((n * n * n) - n) / 2;
Console.WriteLine(sum);
}
}
3. 풀이
간단한 수학 문제이다.
그러나 여기서 가장 중요한 것은 바로 형(type)
처음 int로 입력을 받고 입력값을 2,000,000으로 입력했을 때 음수가 나왔다.
입력받는 값이 최대 2,000,000이지만 답인 sum은 n의 세제곱이기 때문에 long을 사용해주어야한다 !
형식 설정을 잘못하게 되면 결과가 잘못되거나 오버플로우가 발생할 수 있다.
'[알고리즘] > BOJ' 카테고리의 다른 글
[C#/BOJ] 1037번: 약수 (0) | 2024.04.13 |
---|---|
[백준/Python] 1920번: 수 찾기(이분 탐색) (1) | 2023.08.19 |
[백준/Pyhton] 14916번: 거스름돈 (그리디 알고리즘) (0) | 2023.07.17 |
[백준/Python] 2178번: 미로탐색 (BFS, 상하좌우 탐색) (0) | 2023.07.07 |
[백준/Python] 2606번: 바이러스 (재귀 DFS 사용) (1) | 2023.05.13 |