반응형
프로그램의 흐름을 반복하는 간단한 알고리즘을 살펴보자
1부터 n 까지의 정수 합 구하기
public int sum(int n){// 1부터 n 까지의 합 구하기
int sum=0;
for(int i=1; i<=n; i++) {
sum += i;
}
return sum;
}
@Test
public void sum(){//1부터 n 까지 정수의 합 구하기
int n = 10;
System.out.println("1부터"+n+"까지의 합:"+sum(n));
}
어떤 조건이 성립하는 동안 처리(프로그램 명령문 또는 명령어의 집합)를 반복하여 실행하는 것을 반복(repetition) 구조라 하며 일반적으로 루프(loop) 라고 부른다.
while 문 또는 for문은 실행 전에 반복을 계속할지를 판단하는데, 이런 구조를 '사전 판단 반복 구조' 라고 부른다.
제어식의 평갓값이 0이 아니면 프로그램 명령문이 반복 된다.
*하나의 변수를 사용하는 반복문은 while문 보다 for문을 사용하는 것이 좋다.
//for문
for(int i=1; i<=n; i++) {
sum += i;
}
//while 문
int i = 1;
while(i<n){
sum += i;
i++;
}
🦊Q7. 1부터 n 까지의 합을 구하고, '1+2+3+...+n = (합)' 으로 출력하는 프로그램을 작성하시오
@Test //Q7 1부터 n 까지 정수의 합 구하기
public void sum(){
int n = 10;
sum(n);
}
public void sum(int n){// 1부터 n 까지의 합 구하기
int sum = 0;
for (int i = 1; i <= n; i++) {
if(i < n)
System.out.print(i + " + ");
else
System.out.print(i);
sum += i;
}
System.out.println(" = " + sum);
}
🦊Q8. 가우스의 덧셈이라는 방법을 이용하여 1부터 n까지의 정수 합을 구하는 프로그램을 작성하세요.
가우스 덧셈: 맨 앞의 정수와 맨 뒤의 정수를 더해나가는 방식
1 + 2 + 3 + 4 + ... + 97 + 98 + 99 + 100 = ?
1 + 100 = 101
2 + 99 = 101
3 + 98 = 101
.
.
.
50 + 51 = 101
(1 + 100) * (100 /2)
@Test // 가우스 덧셈을 이용하여 1부터 n까지의 정수의 합
public void gausSum(){
int n = 10;
gausSum(n);
}
public void gausSum(int n){
int sum = 0;
sum = (1+n)*(n/2)+(n%2==0?0:(1+n)/2); //만약 정수의 개수가 홀수라면 남은 1개의 홀수를 더한다
System.out.println("1부터"+n+"까지의 합 :"+sum);
}
🦊Q9. 정수 a,b를 포함하여 그 사이의 모든 정수의 합을 구하여 반환하는 아래 메서드를 작성하세요
@Test//정수 a,b를 포함하여 그 사이의 모든 정수의 합을 반환하는 sumof 메서드를 작성하세요. a,b 의 대소에 상관없이
public void sumof(){
int a = 10;
int b = 10;
sumof(a,b);
}
public void sumof(int a, int b){
int sum = 0;
int min = 0;
int max = 0;
if(a>b){
min = b;
max = a;
}
else if(a==b){
System.out.println("a와 b가 같습니다.");
min = a;
max = b;
}else{
min = a;
max = b;
}
System.out.println("min: "+min+", max: "+max);
for(int i = min; i<=max; i++){
sum += i ;
}
if(a==b){
sum=0;
}
System.out.println(min+"과"+ max+"의 사이의 정수의 합: "+sum);
}
반응형
'자료구조 | 알고리즘 > 공부' 카테고리의 다른 글
반복2. 양수만 입력하기 (0) | 2021.11.02 |
---|---|
기본 알고리즘 (0) | 2021.10.06 |
댓글