Day04 이중 반복문, 공약수, 공배수, 최대 공약수, 최소 공배수
2023. 12. 13. 11:39ㆍ자바 기초 및 세팅
TestEx01
package day04;
import java.util.Scanner;
public class TestEx1 {
public static void main(String[] args) {
/*
* Scanner를 이용하여 국어, 영어, 수학 성적을 입력받고
* 총점과 평균을 구하는 코드를 작성하세요.
* */
Scanner Scan = new Scanner(System.in);
System.out.print("수학 점수를 입력해주세요");
int math = Scan.nextInt();
System.out.print("국어 점수를 입력해주세요");
int kor = Scan.nextInt();
System.out.print("영어 점수를 입력해주세요");
int eng = Scan.nextInt();
System.out.println("수학, 국어, 영어의 총점은" + (math +kor +eng));
System.out.println("수학, 국어, 영어의 평균은" + ((math +kor +eng)/3));
//다른 방법
System.out.println("성적 입력(국어, 영어, 수학 순) : ");
int kor_ = Scan.nextInt();
int eng_ = Scan.nextInt();
int math_ = Scan.nextInt();
// 성적의 총점과 평균을 계산
int sum = kor_ + eng_ + math_;
double avg = (double)sum / 3;
//성적의 총점과 평균을 출력
System.out.println("총점 : " + sum +"평균 : " + avg);
}
}
Test2 공약수 구하기
package day04;
import java.util.Scanner;
public class GCDEx2 {
public static void main(String[] args) {
/*두 정수의 공약수를 출력하는 코드를 작성하세요/
* 약수 : 나누어서 떨어지는 수
* 공약수 : 공통으로 있는 약수
* 12의 약수 : 1, 2, 3, 4, 6, 12
* 8의 약수 : 1, 2, 4, 8
* 8과 12의 공약수 : 1, 2, 4
* */
Scanner scan = new Scanner(System.in);
System.out.print("두 정수를 입력하세요");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
for(int i = 1; i <= num1; i++) {
if(num1%i==0 && num2%i==0) {
System.out.println(i);
}
}
// Scanner 사용 안하고 해보기
int num3 = 8, num4 =12;
for(int i = 1; i <= num3;i++) {
if(num3%i==0 && num4%i==0) {
System.out.println(i);
}
}
//결과값 한줄로 나오게 하기
for(int i = 1; i <= num3;i++) {
if(num3%i==0 && num4%i==0) {
System.out.print((i == 1) ? "" : ", " + i);
}
}
}
}
Test3 최대공약수 구하기
package day04;
import java.util.List;
import java.util.Scanner;
public class GCDEx3 {
public static void main(String[] args) {
/*두 정수의 공약수를 출력하는 코드를 작성하세요/
* 약수 : 나누어서 떨어지는 수
* 공약수 : 공통으로 있는 약수
* 12의 약수 : 1, 2, 3, 4, 6, 12
* 8의 약수 : 1, 2, 4, 8
* 8과 12의 공약수 : 1, 2, 4
* 8과 12의 최대 공약수 : 4
* 반복 회수 : i = 1부터 num1까지 1씩 증가
* 규칙성 : i가 num1과 num2의 약수이면 gcd에 i를 저장
* */
Scanner scan = new Scanner(System.in);
System.out.print("정수 입력");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int a = 0;
for(int i = 1; i <= num1; i++) {
if(num1%i==0 && num2%i==0) {
a = i;
}
}
System.out.println("최대 공약수는 : "+a);
//다른방법
for(int i = num1; i >= 1; i--) {
if(num1%i==0 && num2%i==0) {
System.out.println("최대 공약수는 : "+a);
break;
}
}
}
}
Test4
최소 공배수 구하기
package day04;
import java.util.Scanner;
public class LcmEx1 {
public static void main(String[] args) {
/*
* 두 정수의 최소 공배수를 구하는 코드를 작성하세요.
* 10의 배수 : 10, 20 ,30 ....
* 15의 배수 : 15, 30, 45 ....
* 10과 15의 공배수 : 30, 60, 90, ....
* 10과 15의 최소 공배수
* 반복회수 : i는 1부터 num1 * num2까지 1씩 증가
* 규칙성 : i가 num1과 num2의 공배수이면 i출력하고 반복문 종료
* =>i가 num1의 배수이고, i가 num2의 배수이면 i를 출력하고 반복문 종료
* =>i를 num1으로 나누었을 때 나머지가 0과 같고 i를 num2로 나누었을때 나머지가 0과 같다면
* i를 출력
* */
// Scanner scan = new Scanner(System.in);
// System.out.print("두 정수를 입력하세요 : ");
// int num1 = scan.nextInt();
// int num2 = scan.nextInt();
// int i = 0;
// while(true) {
// if(num1%i == 0 && num2%i == 0) {
// System.out.println(i);
// break;
// }
// }
// 정답
int num3 = 10, num4 = 15;
for(int j = 1; j <= num3*num4; j++) {
System.out.println(j);
if(j%num3 == 0 && j%num4 == 0) {
System.out.println(j);
break;
}
}
//i가 num1부터 num1씩 증가 => i를 num1의 배수들로만 계산함
for(int j = num3; j <= num3*num4; j+=num3) {
System.out.println(j);
if(j%num4 == 0) {
System.out.println(j);
break;
}
}
}
}
'자바 기초 및 세팅' 카테고리의 다른 글
day4 반복문, do-while (0) | 2023.12.14 |
---|---|
day4 별찍기, (0) | 2023.12.13 |
day3 조건문 (0) | 2023.12.13 |
스캐너(콘솔로 입력받기) (0) | 2023.12.11 |
2day 조건문 (0) | 2023.12.11 |