본문 바로가기
IT_Developers/JAVA

JAVA - 1부터 100까지 더 하는 프로그래밍 실습

by 고코더 2020. 3. 7.


1부터 100을 더해 5050을 구하는 실습


안녕하세요.
고코더 입니다.



1부터 100까지 더하는 프로그래밍 문제를 풀어보려고 합니다. 오히려 현업에서 코딩을 오래 하던 분일 수록 갑작스런 기초 문제를 물어보면 당황하는 경우가 많습니다. 처음 본 문제라면 초보분들도 당황하시겠지만요. 그리고 무엇보다 이런 문제를 요즘 물어보는 회사가 많아졌습니다.(귀찮게) 그래서 이런 프로그래밍 문제도 가끔 블로그에서 다뤄 보려고 합니다. 너무나도 쉬우니 눈으로 손으로 한번씩 따라해보시기 바랍니다.



1부터 100까지 합하는 정석


첫번째 방법은 가장 쉬운 방법으로 해당 문제를 클리어 해보겠습니다. 반복문을 이용해서 1부터 100까지 더해주는 방법입니다. 아래 코드를 참조해보시기 바랍니다. 해당 코드는  https://csacademy.com/workspace/ 접속해서 실행해보시길 바랍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Don't place your source in a package
import java.util.*;
import java.lang.*;
import java.io.*;
 
// Please name your class Main
class Main {
    public static void main (String[] args) throws java.lang.Exception {
 
        int sumNum =0;
        int lastnum=100;
        for (int num = 1; num <= lastnum; num++) {
            sumNum += num;
        }
        System.out.println(sumNum);
    }
}
cs

10번 라인 : 전체 합을 저장할 변수 입니다.
11번 라인 : 합을 더할 마지막 숫자 입니다. 
12번 라인 : 반복문을 사용해서 마지막 숫자만큼 반복을 실행합니다.
13번 라인 : 결과를 담을 변수에 저장합니다.

자바스크립트 방식

1
2
3
4
5
6
sumNum =0;
lastnum=100
for(num = 0; num <=50; num++){
    sumNum += num +(lastnum-num);
}
sumNum
cs


가우스 법칙


이번 방법은 가우스가 수업시간에 풀었던 그 방식입니다. 1과 100을 더하고 2와 99를 더해서 50번 반복하여 숫자를 찾는 방식입니다. 정석적인 방법이랑 이 방식을 사용해서 실습해보시길 바랍니다. 반복문을 50번 뿐이 사용하지 않기 때문에 절반에 프로세스를 사용합니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Don't place your source in a package
import java.util.*;
import java.lang.*;
import java.io.*;
 
// Please name your class Main
class Main {
    public static void main (String[] args) throws java.lang.Exception {
 
        int startNum =1;
        int lastnum=100;        
        int sumNum =0;
 
        for (int num = 1; num <= lastnum/2; num++) {
            sumNum += (startNum+ lastnum);
        }
        System.out.println(sumNum);
 
    }
}
cs

10번 라인 : 시작할 숫자를 저장하는 변수입니다.
14번 라인 : 아까와 달리 50번만 반복을 합니다. lastnum을 2로 나누어서 반복 횟수를 지정합니다.
15번 라인 : 시작 숫자와 마지막 숫자를 던하는걸 50번 반복합니다.

자바스크립트 방식
1
2
3
4
5
6
7
startNum =1;
lastnum=100;
sumNum = 0;
for(num = 1; num <=(lastnum/2); num++){
    sumNum += (startNum+ lastnum) ;
}
sumNum
cs


마무리


갑자기 물어보면 어렵지만 가장 쉬운 문제



댓글