알고리즘 & 자료구조/기초 다잡기

2. A부터 B까지의 자연수의 합

알못에서잘알까지 2020. 9. 1. 09:24

    2번 문제    

.    1번 문제      

    1번

 

    내가 풀이한 답    제   1 문제   

    내가 풀이한 답   

#include <iostream>
using namespace std;

int main(int argc, char** argv) {
	int a, b, sum=0;
	cin >> a >> b;
	
	for(int i=a; i<=b; i++){
		sum += i;
		if(i==b){
			cout << i << " = ";
		}
		else {
			cout << i << " + ";
		}
	}	
	cout << sum << endl;
	return 0;
}

 

 문제를 보자마자 떠오른 생각은 string 변수를 하나 두어 변수에 값들을 추가하는 방식으로 생각을 했다. 하지만, 굳이 string 변수를 쓰지 않아도 cout 객체만으로도 출력할 수 있음을 깨달았다. 출력 예제를보면  마지막에만 "=" 이고 나머지는 "+" 인 것을 확인하고 순회를 돌면서 마지막 숫자인 b에 해당하는 부분에 분기문(if)으로 처리를 하였다. 

 

 결과는 통과를 하였다.

 

 

 

 

    사이트의 답안   

 

#include<stdio.h>
int main(){
	int a, b, sum=0, i;
	scanf("%d %d", &a, &b);
	for(i=a; i<b; i++){
		sum+=i;
		printf("%d + ", i);
	}
	printf("%d = %d\n", i, sum+i);
	return 0;
}

 

 여기서는 C 언어로 작성되었다. 굳이 분기문(if)문을 안쓰고 짤 수 있다는 것을 확인했다. +에 해당하는 부분에만 순회를 돌고 마지막은 그냥 따로 빼서 출력을 한 모습... 이렇게 더 간단하게 짤 수 있다는 것을 느꼈다.