반응형

 

문제

 

아래의 문제들을 풀어 출력하시오.

 

package kr.or.ddit.study02;

import java.util.Scanner;

public class VariableTest {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		VariableTest obj = new VariableTest();
		obj.method1();
		obj.method2();
		obj.method3();
		obj.method4();
		obj.method5();
	}
	private void method1() {
		// 기본타입을 각각 선언해보고 갑을 저장 할 것
		// 8가지  
		// System.out.println 을 이용해서 출력까지 해보자.
		
		// 정수형 byte ~
		
		// 바이트 = 8bit 프로그램 기본단위로 많이 사용  
	}

	private void method2() {
		/*
		 *  각 데이터를 형변환 하고 출력 하시오.
		 */
		// char -> int 
		
		// int -> char 
		
		// int -> double
		
		// int 값 변수 a,b 를 나누기 연산후 double로 저장
		
		// char -> String
		
		// c3_1 + c3_2 값을 문자열에 저장
		
		char c3_1 ='a';
		char c3_2 ='b';
	}
	
	private void method3() {
		// Math.random
		// 0~0.9999999999999999 범위 값.
		// *10은 범위 값  +1은 시작 값.
		// (int)(Math.random()*10)+1
		
//		int ran = (int)(Math.random()*100)+1;
//		System.out.println(ran);
		
		/*
		 * 양꼬치는 1인분에 12000원 음료수는 2000원 입니다. 
		 * 양꼬치 n개와 음료수 k 를 먹었다면 총 얼마를 지불해야 하는지 
		 * 출력해보세요.
		 * n 값은 1~10 
		 * k 값은 1~3
		 */
		
		int n = (int)(Math.random()*10)+1;
		int k = (int)(Math.random()*3)+1;
		
		//결과값 저장 할 곳
		int result = ?;
	}
	
	private void method4() {
		/*
		 * 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
		 * num1을 num2로 나눈 나머지와 몫을 출력하세요.
		 */
		int num1 = (int)(Math.random()*50)+1;
		int num2 = (int)(Math.random()*50)+1;
		
		// 몫  : 정수형 데이터 이기 때문에 소수점 값 자동 생략됨.
		
		// 나머지 
		
	}
	private void method5() {
		/*
		 * 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
		 * num1을 num2로 나눈 값에 1000을 곱한후 
		 * 정수 부분을 출력 하세요.
		 */
		
		int num1 = 20;//(int)(Math.random()*50)+1;
		int num2 = 14;//(int)(Math.random()*50)+1;

		// 소수점 3자리 출력 하도록 해볼것
		int    result_int =num1*1000/num2;
		double result = (double)result_int/1000;
	}
	
	private void method6() {
		/*
		 * 두 정수에 대한 연산으로 두정수를 붙여서 쓴 값을 출력합니다. 
		 * 예를 들면 다음과 같습니다.
		 * a = 12,  b =3
		 * 12 ☆ 3 = 123
		 * 3  ☆ 12 = 312 
		 * 
		 *  양의 정수 a와 b가 주어졌을때 
		 *  a ☆ b 와 b ☆ a 값중 더 큰값을 출력하세요 
		 */
		int a = (int)(Math.random()*100)+1;
		int b = (int)(Math.random()*100)+1;
		
		
	}
	
}

 

 

 

정답

 

package kr.or.ddit.study02;

import java.util.Scanner;

public class VariableTest {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		VariableTest obj = new VariableTest();
		obj.method1();
		obj.method2();
		obj.method3();
		obj.method4();
		obj.method5();
		obj.method6();
	}
	private void method1() {
		// 기본타입을 각각 선언해보고 갑을 저장 할 것
		// 8가지  
		// System.out.println 을 이용해서 출력까지 해보자.
	
		// 문자형
		char cha = 'A';
		System.out.println("char 타입의 값은 " + cha + "입니다.");

		// 정수형 byte ~
		// 바이트 = 8bit 프로그램 기본단위로 많이 사용
		byte byt = 100;
		System.out.println("byte 타입의 값은 " + byt + "입니다.");
		
		short sh = 10;
		System.out.println("short 타입의 값은 " + sh + "입니다.");
		
		int in = 123;
		System.out.println("int 타입의 값은 " + in + "입니다.");
		
		long lon = 100000000L;
		System.out.println("long 타입의 값은 " + lon + "입니다.");
		
		// 실수형
		double dou = 12.234;
		System.out.println("double 타입의 값은 " + dou + "입니다.");
		
		float flo = 56.78910f;
		System.out.println("float 타입의 값은 " + flo + "입니다.");
		
		// 논리
		boolean boo = true;
		System.out.println("boolean 타입의 값은 " + boo + "입니다.");
	}

	private void method2() {
		/*
		 *  각 데이터를 형변환 하고 출력 하시오.
		 */
		// char -> int 
		char ch = 'A';
		int in = ch;
		System.out.println("char을 int로 형변환한 값은 " + in);
		
		// int -> char
		in = 66;
		ch = (char)in;
		System.out.println("int을 char로 형변환한 값은 " + ch);
		
		// int -> double
		in = 67;
		double dou = in;
		System.out.println("int을 double로 형변환한 값은 " + dou);
		
		// int 값 변수 a,b 를 나누기 연산후 double로 저장
		int a = 16;
		int b = 7;
		double result = (double)a/(double)b;
		System.out.println("int 값 변수 a,b 를 나누기 후 연산된 값은 " + result);
		
		// char -> String
		ch = 'D';
		String str = String.valueOf(ch);
		System.out.println("char을 String로 형변환한 값은 " + ch);
		
		// c3_1 + c3_2 값을 문자열에 저장
		char c3_1 ='a';
		char c3_2 ='b';
		str = "" + c3_1 + c3_2;
//		str = String.valueOf(c3_1);
//		str += String.valueOf(c3_2);
		System.out.println("c3_1과 c3_2의 문자열을 저장한 값은 " + str);
		
		// String -> char
		String s4 = "abc";
		char c4_1 = s4.charAt(0);
		char c4_2 = s4.charAt(1);
		char c4_3 = s4.charAt(2);
	}
	
	private void method3() {
		// Math.random
		// 0~0.9999999999999999 범위 값.
		// *10은 범위 값  +1은 시작 값.
		// (int)(Math.random()*10)+1 // 0부터 9까지에 +1 해서 1부터 10까지의 범위가 된다.
		
//		int ran = (int)(Math.random()*100)+1;
//		System.out.println(ran);
		
		/*
		 * 양꼬치는 1인분에 12000원 음료수는 2000원 입니다. 
		 * 양꼬치 n개와 음료수 k 를 먹었다면 총 얼마를 지불해야 하는지 
		 * 출력해보세요.
		 * n 값은 1~10 
		 * k 값은 1~3
		 */
		
		int n = (int)(Math.random()*10)+1; // 1에서 10까지의 범위
		int k = (int)(Math.random()*3)+1; // 1에서 3까지의 범위
		
		//결과값 저장 할 곳
		int result = n*12000 + k*2000;
		
		System.out.println("양꼬치 " + n + "개와 음료수 " + k + "개를 먹었다.");
		System.out.println("총 가격은 " + result + "이다.");
	}
	
	private void method4() {
		/*
		 * 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
		 * num1을 num2로 나눈 나머지와 몫을 출력하세요.
		 */
		int num1 = (int)(Math.random()*50)+1;
		int num2 = (int)(Math.random()*50)+1;
		
		// 몫  : 정수형 데이터 이기 때문에 소수점 값 자동 생략됨.
		int share = num1/num2;
		System.out.println(num1 + " 나누기 " + num2 + "의 몫은 " + share + "이다.");
		
		// 나머지 
		int remain = (num1%num2);
		System.out.println("나머지는 " + remain + "이다.");
		
//		System.out.printf("num1 : %d , num2 : %d\n", num1, num2);
//		System.out.printf("몫은 : %d , 나머지는 : %d\n", share, remain);
	}
	private void method5() {
		/*
		 * 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
		 * num1을 num2로 나눈 값에 1000을 곱한후 
		 * 정수 부분을 출력 하세요.
		 */
		
		int num1 = (int)(Math.random()*50)+1;
		int num2 = (int)(Math.random()*50)+1;
		
		double resultNum = ((double)num1 / (double)num2) *1000;
		int resultNu = (int)resultNum;
		// int result = num1*1000/num2; // 한줄로 바꾼다면 아래와 같다.
		
		System.out.println("정수 num1의 값은 " + num1 + ", 정수 num2의 값은 " + num2);
		System.out.println("나눈 후 1000을 곱한 정수 부분의 값은 " + resultNu + "이다.");
		
		// 소수점 3자리 출력 하도록 해볼것
		int    result_int =num1*1000/num2; // 1428
		double result = (double)result_int/1000; //1.428
		
		result_int = result_int/1000 * 1000;
		result *= 1000;
		result_int = (int)result - result_int;
		result = result_int / 1000.0;
		
		System.out.println("소수점 3자리는 " + result + "이다.");
	}
	
	private void method6() {
		/*
		 * 두 정수에 대한 연산으로 두정수를 붙여서 쓴 값을 출력합니다. 
		 * 예를 들면 다음과 같습니다.
		 * a = 12,  b =3
		 * 12 ☆ 3 = 123
		 * 3  ☆ 12 = 312 
		 * 
		 *  양의 정수 a와 b가 주어졌을때 
		 *  a ☆ b 와 b ☆ a 값중 더 큰값을 출력하세요 
		 */
		int a = (int)(Math.random()*100)+1;
		int b = (int)(Math.random()*100)+1;
		
		String ab = "" + a + b;
		String ba = "" + b + a;
		
		int ab_int = Integer.valueOf(ab);
		int ba_int = Integer.valueOf(ba);
		
		int result = ab_int > ba_int ? ab_int : ba_int;
		
		System.out.printf("a의 값은 %d, b의 값은 %d\n", a, b);
		System.out.println("더 큰 값은 " + result);
	}
	
}

 

결과 화면

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 6.5장 테스트  (0) 2023.12.08
[Java 초급] 6장 조건문  (0) 2023.12.07
[Java 초급] 5.5.1장 테스트  (0) 2023.12.06
[Java 초급] 5장 단항, 이항, 삼항 연산자  (0) 2023.12.06
[Java 초급] 4.5장 테스트  (2) 2023.12.06