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() 를 사용해서도 자릿값을 가져올 수도 있습니다.











+ Recent posts