문제풀이/자바

TIL - 자바의정석 연습문제[ch3 - 4 ,5]

Mo_bi!e 2023. 1. 9. 14:34

[3 - 4]

1. 문제설명

2. 나의 해답

package ex3_4;

public class Exercise3_4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int num = 456;
		System.out.println(num / 100 * 100);
	}

}

 

3. 정답 코드

 

4. 보충 및 회고 

(1) 보충

 

(2) 회고 : 문제풀이과정에서 어떻게 접근하려고했는지 (접근방법) + 어려움이 있었는데 해결했다.

1) 사실 3-5를 먼저 풀고 푼거여서 큰 어려움은없었다

 


 

[3 - 5]

1. 문제설명

2. 나의 해답

package ex3_5;

import java.util.Scanner;

public class Exercise3_5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner scan = new Scanner(System.in);
	
		while(true) {
		int num = scan.nextInt();
				
		
		//방법 => 자릿수별로 쪼개주기 
		
		//num의 1의 자리를 0으로 만들어준다
		// 1의자리에다가 1을 더해준다
		
		
		System.out.println((num / 10) * 10 + 1);
		
		
		}
	}

}

 

3. 정답 코드

 

4. 보충 및 회고 

(1) 보충

 

(2) 회고 : 문제풀이과정에서 어떻게 접근하려고했는지 (접근방법) + 어려움이 있었는데 해결했다.

 

1)

결과는 다소 허무했다. 다만 3-4문제와 비교해서 그 방법을 명세해보면 다음과 같다

우선 나눗셈 연산자는 몫을 제외한 나머지를 다 버린다.

 

이 경우 버린 것을 목적으로 할때 작은 자릿수부터 몇번째 자리까지 버릴건지를 생각하면 좋은거같다

 

10을 나누면 1의자리만 없어지고

100을 나누면 1, 10의 자리 모두 없어진다.

 

 

2) 

일반적인 수학으로 생각했으면 의미가 없을수 있으나, 절차지향적인 프로그래밍적 사고로 하면 충분히

나눈뒤 다시 곱하는 방식을 충분히 생각할 수있다.