-- 예전 기록/BOJ

[ BOJ ] 8393 : 합 ( BRONZE 5 ) / C, C++, Python, Java

rejo 2023. 9. 3. 14:58

문제

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.

출력

1부터 n까지 합을 출력한다.

풀이 과정

1부터 n까지의 합을 저장하여 출력하면 되는 반복문 기초 문제이다.

그러나, 1부터 n까지의 합에 대한 수학 공식을 알고 있다면 이 또한 사용이 가능하다.

C - 반복문

#include <stdio.h>

int main(void) {
    int n; scanf("%d", &n);
    int result = 0;
    for (int i = 1; i <= n; i++)
        result += i;
    printf("%d", result);
    return 0;
}

C - 수학

#include <stdio.h>

int main(void) {
    int n; scanf("%d", &n);
    printf("%d", n*(n+1)/2);
    return 0;
}

C++ - 반복문

#include <iostream>
using namespace std;

int main(void) {
    int n; cin >> n;
    int result = 0;
    for (int i = 1; i <= n; i++)
        result += i;
    cout << result;
    return 0;
}

C++ - 수학

#include <iostream>
using namespace std;

int main(void) {
    int n; cin >> n;
    cout << n*(n+1)/2;
    return 0;
}

Python - 반복문

import sys
input = sys.stdin.readline

n = int(input().rstrip())
result = 0
for i in range(1, n+1):
    result += i
print(result)

Python - 수학

import sys
input = sys.stdin.readline

n = int(input().rstrip())
print(n*(n+1)//2)

Java - 반복문

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int result = 0;
        for (int i = 1; i <= n; i++)
            result += i;
        System.out.println(result);
    }
}

Java - 수학

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(n*(n+1)/2);
    }
}