※꼭 제 코드가 맞는 것도 아니고 정해진 답이 있는 것도 아닙니다. 문제가 어려워 접근하지 못하시는 분들을 위한 풀이이니 잘못된 점이 있으면 댓글로 남겨주시면 감사하겠습니다. 예제의 출력은 이 예제를 눈으로만 보고 계시는 분들이 있을 것 같아 직접 해보고 출력 값이 어떨까를 알고 가셨으면 하는 마음에 출력 값은 제공하지 않습니다. 궁금하신 분들은 코드를 복사해서 컴파일해보세요!
예제 1. 2개의 값을 입력받고 2개의 값의 최소공배수를 찾는 프로그램(3개의 수를 하고 싶었는데 너무 어려워지네요..)
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.util.Scanner;
public class Ex1 {
public static int function(int a, int b) {
int min = 0;
int max;
// 최대공약수를 구해서 최소공배수를 구하는 코드입니다.
for(int i = 1; i <= a && i <= b; i++) {
if(a % i == 0 && b % i == 0) {
min = i; //최종적으로는 두 수의 가장 큰 공약수가 min에 저장됩니다.
}
}
max = a * b / min;
//최소공배수는
if(max > 0 && max <= 2147483647) { //양의 정수 int의 범위까지
return max;
}
else { //최소공배수가 없어서 무한으로 max값이 올라가거나 최소공배수가 int의 범위보다 큰 경우
return -1;
}
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("최소공배수를 구하고 싶은 2개의 수를 입력하세요. :");
int a = s.nextInt();
int b = s.nextInt();
System.out.println("입력한 두 수의 최소공배수는 " + function(a, b) + "입니다.");
}
}
|
cs |
예제 2. 정수 n의 약수들의 합을 구하는 프로그램
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.Scanner;
public class Ex2 {
public static int factorial(int num) {
int sum = 0;
for(int i = 1; i <= num; i++) {
if(num % i == 0) { //i = 0으로 선언할 경우 num % i에서 오류가 발생하니 조심하세요
sum += i;
}
}
return sum;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("약수의 합을 구하고 싶은 정수를 입력하시오. :");
int n = s.nextInt();
System.out.println(n + "의 약수의 합은 " + factorial(n) + "입니다.");
}
}
|
cs |
예제 3. 문자열을 입력받고 문자열의 n번째 단어를 출력하는 프로그램 (사용자 정의 메소드 사용)
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class Ex3 {
public static char function(String sentence, int num) {
return sentence.charAt(num);
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("영단어를 분리할 문자열을 입력하시오. :");
String a = s.nextLine();
System.out.print("몇번째 단어를 분리할 것인지 입력하시오. :");;
int n = s.nextInt();
System.out.println("입력한 " + a + "의 분리 결과는 " + function(a, n) + "입니다.");
}
}
|
cs |
예제 4. 1항부터 n항까지의 피보나치수열의 합을 구하시오.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.Scanner;
public class Ex4 {
public static int fibonacci(int n) {
int num1 = 1;
int num2 = 1;
int result = -1;
int sum = 2; //sum을 2로 선언한 이유는 3번째 항부터 result값에 들어가 sum에 더해지므로 1항, 2항의 값 1씩 더해준다.
if(n == 1 || n == 2) {
return 1;
}
else if(n < 1) {
return -1;
}
else {
for(int i = 2; i < n; i++){
result = num1 + num2;
num1 = num2;
num2 = result;
sum += result;
}
}
return sum;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("피보나치수열의 1항부터 몇번째 항까지의 합을 구할까요? :");
int n = s.nextInt();
System.out.println(n + "까지의 피보나치수열의 합은 " + fibonacci(n) + "입니다.");
}
}
|
cs |
예제 5. 행의 길이와 열의 길이를 입력받아 행 X 열의 정수(0<=n<10) 랜덤 데이터를 생성한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("배열의 행의 크기를 몇으로 설정할까요? :");
int a = s.nextInt();
System.out.print("배열의 열의 크기를 몇으로 설정할까요? :");
int b = s.nextInt();
int[][] array = new int[a][b];
for(int i = 0; i < a; i++) {
for(int j = 0; j < b; j++) {
array[i][j] = (int)(Math.random()*10); /
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
|
cs |
오늘도 공부한 듯 안 한 듯 애매한 하루였네요. 나약하고 지저분한 정신상태를 고치려고 운동을 하고 있긴 하지만 전역한 후 비대해져만 가는 몸뚱이네요.. 다들 좋은 하루가 되셨으면 좋겠습니다.
'자바 공부' 카테고리의 다른 글
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 3일차 예제 풀이 (0) | 2021.01.15 |
---|---|
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 3일차 (클래스(class), 상속(inheritance), 추상(abstract), Final) (0) | 2021.01.15 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 2일차 (객체지향, 메소드, 반복, 재귀, 배열, 다차원 배열) (0) | 2021.01.14 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 1일차 예제 풀이 (0) | 2021.01.13 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 1일차 (변수, 연산자, 조건문, 반복문) (0) | 2021.01.13 |