BOJ: 7523 Gauß
문제
카를 프리드리히 가우스는 독일의 수학자이다.
가우스가 초등학교에 다닐 때, 선생님 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;
}
댓글남기기