JAVA
-
Test053 반복문 while문(11) 구구단 프로그램2020.09.03
-
Test052 반복문 while문(10)2020.09.03
-
Test051 반복문 while문(9)2020.09.03
-
Test050 - 1 소수 구하기 (에라토스테네스의 체)2020.09.03
-
Test049 반복문 while문(7)2020.09.03
Test053 반복문 while문(11) 구구단 프로그램
※ 사용자로부터 원하는 단(구구단)을 입력받아 이에 해당하는 구구단을 출력하는 프로그램을 구현한다. 단, 1단 ~ 9단 사이의 수를 입력받은 상황이 아니라면 프로그램을 종료해 버릴 수 있도록 처리한다.
실행 예)
원하는 단(구구단) 입력 : 7
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
:
7 * 9 = 63
계속하려면 아무 키나 누르세요...
원하는 단(구구단) 입력 :11
1부터 9까지의 정수만 입력 가능합니다.
계속하려면 아무 키나 누르세요...
import java.util.Scanner;
public class Test053
{
public static void main(String[] args)
{
// Scanner 인스턴스 생성
Scanner sc = new Scanner(System.in);
// 주요 변수 선언
int n; // 단을 입력받을 정수 변수
int i=1; // 반복문을 수행하기 위한 변수
// 연산 및 처리
System.out.print("원하는 단(구구단) 입력 : ");
n = sc.nextInt();
// 결과 출력
// 1~9사이가 아닌 값을 입력 받을시 예외처리
if(( !((n<9)&&(n>1)) ))
{
System.out.println("1부터 9까지의 정수만 입력 가능합니다.");
return;
}
while(i<=9)
{
System.out.println(n + " * " + i + " = " + (n*i) );
i++;
}
}
}
실행 결과
// 실행 결과 /* 원하는 단(구구단) 입력 : 5 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 계속하려면 아무 키나 누르십시오 . . . 원하는 단(구구단) 입력 : 0 1부터 9까지의 정수만 입력 가능합니다. 계속하려면 아무 키나 누르십시오 . . . */
'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test055 반복문 do~while문(2) (0) | 2020.09.04 |
|---|---|
| Test054 반복문 do~while문(1) (0) | 2020.09.04 |
| Test052 반복문 while문(10) (0) | 2020.09.03 |
| Test051 반복문 while문(9) (0) | 2020.09.03 |
| Test050 - 1 소수 구하기 (에라토스테네스의 체) (0) | 2020.09.03 |
Test052 반복문 while문(10)
※ 사용자로부터 임의의 정수를 입력받아 1부터 입력받은 그 수 까지의 전체 합과, 짝수의 합과, 홀수의 합을 각각 결과값으로 출력하는 프로그램을 구현한다.
실행 예)
임의의 정수 입력 : 270
1 ~ 270 까지 정수의 합 : xxxx
1 ~ 270 까지 짝수의 합 : xxxx
1 ~ 270 까지 홀수의 합 : xxxx
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test052
{
public static void main(String[] args) throws IOException
{
// BufferedReader 인스턴스 생성
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 주요 변수 선언
int n; // 입력받을 정수를 담을 변수
int i=1; // 반복문을 수행할 반복 변수
int sum, evenSum, oddSum; // 정수, 짝수, 홀수의 합을 담을 변수
sum=evenSum=oddSum=0; // 을 0으로 초기화
// 연산 및 처리
System.out.print("임의의 정수 입력 : ");
n = Integer.parseInt(br.readLine());
while(i<=n)
{
oddSum += i++;
evenSum += i++;
}
sum = oddSum + evenSum;
// 결과 출력
System.out.println("1 ~ " + n + " 까지 정수의 합 : " + sum);
System.out.println("1 ~ " + n + " 까지 짝수의 합 : " + evenSum);
System.out.println("1 ~ " + n + " 까지 홀수의 합 : " + oddSum);
}
}
실행 결과
// 실행 결과 /* 임의의 정수 입력 : 10 1 ~ 10 까지 정수의 합 : 55 1 ~ 10 까지 짝수의 합 : 30 1 ~ 10 까지 홀수의 합 : 25 계속하려면 아무 키나 누르십시오 . . . 임의의 정수 입력 : 14 1 ~ 14 까지 정수의 합 : 105 1 ~ 14 까지 짝수의 합 : 56 1 ~ 14 까지 홀수의 합 : 49 계속하려면 아무 키나 누르십시오 . . . */
'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test054 반복문 do~while문(1) (0) | 2020.09.04 |
|---|---|
| Test053 반복문 while문(11) 구구단 프로그램 (0) | 2020.09.03 |
| Test051 반복문 while문(9) (0) | 2020.09.03 |
| Test050 - 1 소수 구하기 (에라토스테네스의 체) (0) | 2020.09.03 |
| Test050 반복문 while문(8) 소수 구하기 (1) | 2020.09.03 |
Test051 반복문 while문(9)
※ 사용자로부터 임의의 두 정수를 입력받아 작은 수 부터 큰 수 까지의 합을 구하여 결과를 출력하는 프로그램을 구현한다.
실행 예)
첫 번째 정수 입력 : 10
두 번째 정수 입력 : 20
>> 10 ~ 20 까지의 합 : xxxx
계속하려면 아무 키나 누르세요...
실행 예)
첫 번째 정수 입력 : 10
두 번째 정수 입력 : 2
>> 2 ~ 10 까지의 합 : 54
계속하려면 아무 키나 누르세요...
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test051
{
public static void main(String[] args) throws IOException
{
// 주요 변수 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n; //-- 루프 변수로 활용할 변수
int su1, su2; //-- 첫 번째, 두 번째 입력하는 정수를 담아낼 변수
int result = 0; //-- 누적합을 담아낼 변수
// 연산 및 처리
System.out.print("첫 번째 정수 입력 : ");
su1 = Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
su2 = Integer.parseInt(br.readLine());
// 입력받은 두 수의 크기 비교 및 자리 바꿈
// 즉, su1 이 su2 보다 큰 경우 두 수의 자리를 바꿀 수 있도록 처리
if(su1 > su2)
{
// 자리 바꿈
su1 = su1 ^ su2;
su2 = su2 ^ su1;
su1 = su1 ^ su2;
}
// 반복 연산 수행
// 반복 연산을 수행하기 전에
// 작은 수를 따로 저장하여 루프 변수로 활용한다.
// (이유는... 결과를 출력해 주는 과정에서 작은 수(su1)가 필요한데...
// 직접 이 수를 증가시켜 나갈 경우... 최종 결과 출력이 불가능하기 때문에...)
n = su1;
while(su1 <= su2) // 3 6
{
result+=su1; //0+3+4+5+6
su1++;
}
// 결과 출력
System.out.println(">> " + n + " ~ " + su2 + "까지의 합 : " + result);
}
}
// 실행 결과
/*
첫 번째 정수 입력 : 10
두 번째 정수 입력 : 2
>> 2 ~ 10까지의 합 : 54
계속하려면 아무 키나 누르십시오 . . .
*/'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test053 반복문 while문(11) 구구단 프로그램 (0) | 2020.09.03 |
|---|---|
| Test052 반복문 while문(10) (0) | 2020.09.03 |
| Test050 - 1 소수 구하기 (에라토스테네스의 체) (0) | 2020.09.03 |
| Test050 반복문 while문(8) 소수 구하기 (1) | 2020.09.03 |
| Test049 반복문 while문(7) (0) | 2020.09.03 |
Test050 - 1 소수 구하기 (에라토스테네스의 체)
수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 이는 고대 그리스 수학자 에라토스테네스가 발견하였다.

- 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다.
- 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색)
- 자기 자신을 제외한 2의 배수를 모두 지운다.
- 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색)
- 자기 자신을 제외한 3의 배수를 모두 지운다.
- 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색)
- 자기 자신을 제외한 5의 배수를 모두 지운다.
- 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색)
- 자기 자신을 제외한 7의 배수를 모두 지운다.
- 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다.
※ 이를 이용하여 1부터 100사이의 소수를 구하여라
//1~100사이의 소수 구하기
public class Practice1
{
public static void main(String[] args)
{
int n=100;
boolean[] chae = new boolean[n+1];
int cnt=0;
// 모든 수를 초기화
for(int i=2; i<=100; i++)
{
chae[i]=true;
}
chae[1] = false;
//
for(int i = 2; i * i <= n ; i++)
{
if(chae[i] == false)
continue;
for(int j = i * i; j <= n; j+=i)
{
chae[j] = false;
}
}
//chae[1] = false;
for(int i = 2; i < n; i++)
{
if (chae[i] == true)
{
System.out.printf("%4d ", i);
cnt++;
if(cnt%5==0)
{
System.out.println();
}
}
}
}
}
실행 결과
// 실행 결과 /* 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 계속하려면 아무 키나 누르십시오 . . . */
'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test052 반복문 while문(10) (0) | 2020.09.03 |
|---|---|
| Test051 반복문 while문(9) (0) | 2020.09.03 |
| Test050 반복문 while문(8) 소수 구하기 (1) | 2020.09.03 |
| Test049 반복문 while문(7) (0) | 2020.09.03 |
| Test048 반복문 while문(6) (0) | 2020.09.03 |
Test050 반복문 while문(8) 소수 구하기
※ 사용자로부터 임의의 정수를 입력받아 입력받은 정수가 소수인지 아닌지를 판별하여 결과를 출력하는 프로그램을 구현한다.
실행 예)
임의의 정수 입력 : 100
100 → 소수 아님
계속하려면 아무 키나 누르세요...
임의의 정수 입력 : 11
100 → 소수
계속하려면 아무 키나 누르세요...
※ 소수 : 1 또는 자기 자신의 값 이외의 어떤 수로도 나누어 떨어지지 않는 수. 단, 1은 소수 아님.
방법 ①
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test050
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i = 2;
int input;
System.out.print("임의의 정수 입력 : ");
input = Integer.parseInt(br.readLine());
if(input == 1)
{
System.out.println(input + " → 소수 아님");
return;
}
while(i<input)
{
if (input % i == 0)
{
System.out.println(input + " → 소수 아님");
return;
}
i++;
}
System.out.println(input + " → 소수");
}
}
방법 ②
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i = 1;
int input;
int cnt = 0;
System.out.print("임의의 정수 입력 : ");
input = Integer.parseInt(br.readLine());
while(i<=input)
{
if (input % i == 0)
{
cnt++;
}
i++;
}
if(cnt==2)
System.out.println(input + " → 소수");
else
System.out.println(input + " → 소수 아님");
방법 ③
// 주요 변수 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num; //-- 사용자 입력값을 담아둘 변수
//연산 및 처리
System.out.print("임의의 정수 입력 : ");
num = Integer.parseInt(br.readLine());
int n=2; //-- 입력값을 대상으로 나눗셈 연산을 수행할 변수
// (1씩 증가) 27 → 2 3 4 5 6 ... 26
//String flag = "소수다";
boolean flag = true;
while(n < num) // num=7 → n=2~6 / num=50 →n=2~49
{
if(num % n == 0)
{
//flag = "소수가아니다";
flag = false;
break;
}
n++;
}
// 결과 출력
//System.out.println(num + " → " + flag);
//-- 출력 전에 수행해야 할 추가 확인
// → 입력값이 1인지 아닌지에 대한 추가 검토
if(flag && num != 1)
{
System.out.printf("%d → 소수\n", num);
}
else
{
System.out.printf("%d → 소수 아님\n", num);
}
'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test051 반복문 while문(9) (0) | 2020.09.03 |
|---|---|
| Test050 - 1 소수 구하기 (에라토스테네스의 체) (0) | 2020.09.03 |
| Test049 반복문 while문(7) (0) | 2020.09.03 |
| Test048 반복문 while문(6) (0) | 2020.09.03 |
| Test047 반복문 while문(5) (0) | 2020.09.03 |
Test049 반복문 while문(7)
※ 1 * 2 * 3 * 4 * ... * 9 * 10 의 연산 결과를 출력하는 프로그램을 구현한다.
public class Test049
{
public static void main(String[] args)
{
// 주요 변수 선언 및 초기화
int n = 0, result = 1; //-- 누적곱을 담을 변수 (→ 1로 초기화 check~!!!)
// 연산 및 처리
while (n<10)
{
n++;
result*=n;
}
// 결과 출력
System.out.println("연산 결과 : " + result);
}
}
// 실행 결과
/*
연산 결과 : 3628800
계속하려면 아무 키나 누르십시오 . . .
*/'JAVA > 자바 기본 프로그래밍' 카테고리의 다른 글
| Test050 - 1 소수 구하기 (에라토스테네스의 체) (0) | 2020.09.03 |
|---|---|
| Test050 반복문 while문(8) 소수 구하기 (1) | 2020.09.03 |
| Test048 반복문 while문(6) (0) | 2020.09.03 |
| Test047 반복문 while문(5) (0) | 2020.09.03 |
| Test046 반복문 while문(4) (0) | 2020.09.03 |