20151019
*이문제는 % 연산자와 / 연사자를 알고 있어야 합니다.
*이문제는 dovelet 에 있는 알고리즘 문제입니다.
세 자리수 곱셈/three
프로그램 명: three
제한시간: 1 초
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. 472…… (1)
×385…… (2)
---------------
2360…… (3)
3776 …… (4)
1416 …… (5)
--------------
181720…… (6)
(1)과 (2) 위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6) 위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세 자리 자연수가 주어진다.출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.입출력 예
입력
472
385
출력
2360
3776
1416
181720
출처:koi 초등 지역본선 2 번
문제 풀이
1) 풀이
import java.io.PrintStream; import java.util.Scanner; public class Main { Scanner sc = new Scanner(System.in); PrintStream p = System.out; int temp, temp1, one, two, three; public static void main(String[] args) { Main ma = new Main(); ma.input(); ma.result(); } void input(){ temp = sc.nextInt(); temp1 = sc.nextInt(); } void result(){ one = temp1%10; two = (temp1%100)/10; three = temp1/100; one = one*temp; two = two*temp; three = three*temp; p.println(one); p.println(two); p.println(three); p.println(one + two*10 + three*100); } }
*짧게 코딩하는것도 좋지만 저는 함수와 객체 지향개념을 쓰고 싶어서 이렇게 코딩 했습니다.
우선 2개의 자연수 값을 입력 받기 위해서 temp,temp1 변수 2개를 선언을 하고 그 변수에 입력값을 받습니다.
그 다음 result()함수에서 입력받은 temp1 을 1 의 자리, 10의 자리, 100의 자리 숫자를 가려내기 위해서
몫과 나머지 연산을 사용 합니다. 그럼 다음 각 자리수를 temp 에 각각 곱해주고 자리수를 맞추기 위해
10의 자리는 10을 곱하고 100의 자리는 100을 곱한 뒤 더해주면 됩니다.
*자바에서 나머지 연산을 사용하지 않고 temp1 에서 toStirng() , toCharArray() 를 사용해서도 자릿값을 가져올 수도 있습니다.
'알고리즘(dovelet 문제풀이) > 1층' 카테고리의 다른 글
손해 본 금액/business(손해 본 금액 알고리즘) (0) | 2015.10.20 |
---|---|
인공지능 시계/koi_watch(인공지능 시계 알고리즘) (0) | 2015.10.19 |
초 변환/sec(초 변환 알고리즘) (0) | 2015.10.19 |
거스름 돈/change(거스름 돈 알고리즘) (0) | 2015.10.19 |
몫과 나머지 구하기/q_r (몫과 나머지 구하기 알고리즘) (0) | 2015.10.19 |