BOJ: 7523 Gauß

최대 1 분 소요

문제

카를 프리드리히 가우스는 독일의 수학자이다.

가우스가 초등학교에 다닐 때, 선생님 J.G. Büttner는 \(1\)부터 \(100\)까지 수의 합을 계산하게 시켰다. 가우스는 몇 초만에 정확한 답 \(5050\)을 계산했다.

\(n\)과 \(m\)이 주어졌을 때, \(n\)보다 크거나 같고, \(m\)보다 작거나 같은 모든 정수의 합을 구하는 프로그램을 작성하시오. 즉, 다음을 계산하라.

\[\sum_{i=n}^{m}{i} = n + (n + 1) + (n + 2) + ... + (m - 1) + m\]

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, \(n\)과 \(m\)이 주어진다. \((-10^{9} \leq n \leq m \leq 10^{9})\)

출력

각 테스트 케이스마다 “Scenario #i:”를 출력한 다음, \(n\)부터 \(m\)까지 모든 정수의 합을 출력한다. 각 테스트 케이스 사이에는 빈 줄을 하나 출력한다.

예제 입력 1

3
1 100
-11 10
-89173 938749341

예제 출력 1

Scenario #1:
5050

Scenario #2:
-11

Scenario #3:
440625159107385260


코드

#include <bits/stdc++.h>

using namespace std;

int main(void) {
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    long long n, m;
    int t;
    
    cin>>t;
    
    for(int i=0; i<t; i++) {
        cin>>n>>m;
    
        cout<<"Scenario #"<<i+1<<':'<<'\n'<<(m-n+1)*(n+m)/2<<'\n'<<'\n';
    }
    
    return 0;
}

Reference

BOJ

태그:

카테고리:

업데이트:

댓글남기기