반응형
알고리즘 스터디
1부터 n까지의 정수 합 구하기
연습문제1 1부터 n 까지의 정수 합 구하기
package chap01Ex;
import java.util.Scanner;
// 1, 2, …, n의 합을 구합니다.
class SumFor {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("1부터 n까지의 합을구합니다."); // 키보드 깂을 입력 받는 stdIn.nextInt()보다 앞에 입력
System.out.print("n의 값:");
int n = stdIn.nextInt(); // 키보드 입력 값 중 정숫값 얻어내기
int sum = 0; // 합
for (int i = 1; i <= n; i++)
sum += i; // sum에 i를 더합니다.
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
연습문제2 가우스 덧셈을 이용해 1부터 n까지 정수 합을 구하기
class SumFor {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("가우스덧셈이용");
System.out.print("n의 값:");
int n = stdIn.nextInt();
int sum =0;
for (int i = 0; i < n; i++) {
sum += (i + n-(i-1));
}
sum = sum/2 ;
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
2 해답 코드
package chap01Practice;
import java.util.Scanner;
// 가우스 공식에 의해 1, 2, …, n의 합을 구합니다.
class SumGauss_01_08 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("1부터 n까지의 합을 구합니다.");
System.out.print("n의 값:");
int n = stdIn.nextInt();
int sum = (n + 1) * (n / 2) + (n % 2 == 1 ? (n + 1) / 2 : 0); // 합
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
연습문제3 정수 a,b를 포함하여 그 사이 모든 정수 합 구하기
package chap01Practice;
import java.util.Scanner;
// 정수a, b를 포함하여 그 사이의 모든 정수의 합을 구합니다.
class SumOf_01_09 {
static int sumof(int a, int b) {
int min; // a, b의 작은 쪽의 값
int max; // a, b의 큰 쪽의 값
if (a < b) {
min = a;
max = b;
} else {
min = b;
max = a;
}
int sum = 0; // 합
for (int i = min; i <= max; i++)
sum += i;
return (sum);
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("a와 b를 포함하여 그 사이의 모든 정수의 합을 구합니다.");
System.out.print("a의 값:");
int a = stdIn.nextInt();
System.out.print("b의 값:");
int b = stdIn.nextInt();
System.out.println("정수 a, b 사이의 모든 정수의 합은 " + sumof(a, b) + "입니다.");
}
}
반응형
'개발 > algorithm' 카테고리의 다른 글
[java][algorithm] 배열 역순으로 정렬하기, 배열 뒤집기 (0) | 2018.10.07 |
---|---|
[java][algorithm] 배열의 최댓값 구하기 (0) | 2018.10.07 |
[java] 반복 - 피라미드 만들기 (★) (0) | 2018.10.07 |
[java] 반복 - 구조적 프로그래밍 / 다중 루프 / 구구단 / 정사각형 만들기 (0) | 2018.10.07 |
[java] 반복 - 양수만 입력하기(do while문) / while,for,do문 차이 (0) | 2018.10.07 |