관리 메뉴

취미개발 블로그와 마음수양

학원에서 했던 첫번째 시험~g 본문

Language/java소스

학원에서 했던 첫번째 시험~g

아라한사 2014. 4. 16. 10:33

학원에서 했던 첫번째 시험~



import java.util.Scanner;

public class Prac {

	public static void main(String[] args) {
		int question = 9;
		Scanner maininput = new Scanner(System.in);

		// 받은 문제에 따라서 스위치를 실행한다. 반복문으로 계속 돌리며 0를 누르면 프로그램을 끝낸다.
		while (question != 0) {
			sysout("12번까지 문제가 있습니다. 0 번을 누르시면 프로그램이 종료됩니다.");
			System.out.print("Please input Question Number : ");

			question = maininput.nextInt();
			switch (question) {
			case 0: 	break;
			case 1:	quest01();	break;
			case 2:	quest02();	break;
			case 3:	quest03();	break;
			case 4:	quest04();	break;
			case 5:	quest05();	break;
			case 6:	quest06();	break;
			case 7:	quest07();	break;
			case 8:	quest08();	break;
			case 9:	quest09();	break;
			case 10:	quest10();	break;
			case 11:	quest11();	break;
			case 12:	quest12();	break;
			default:
				sysout("다시 입력해주세요");
			}
		}
		sysout("프로그램 종료");
		maininput.close();
	}

	// 정수를 입력받는 메소드
	public static int getVal() {
		int x;
		Scanner input = new Scanner(System.in);
		x = input.nextInt();

		return x;

	}

	// System.out.println귀찮아서 만든메서드
	public static void sysout(int x) {
		System.out.println(x);
	}

	public static void sysout(String x) {
		System.out.println(x);
	}

	public static void sysoutn(int x) {
		System.out.print(x);
	}

	public static void sysoutn(String x) {
		System.out.print(x);
	}

	// 랜덤 가져오는 함수
	public static int getRandom() {
		int x;
		x = (int) (Math.random() * 45) + 1;
		return x;
	}

	// 문제 풀이 시작!!
	// ==================================================================================
	public static void quest01() {
		int result = 0;
		int[] x = new int[3];
		double avg;
		for (int i = 0; i < 3; i++) {
			System.out.print("please input " + (i + 1) + " number : ");
			x[i] = getVal();
			result += x[i];
		}
		avg = result / 3.0;
		System.out.println("지금까지의 합은 : " + result + "이며 평균은 " + avg);

	}

	public static void quest02() {
		sysout("초 단위로 들어올 시간(정수) 입력");

		int x = getVal();
		int hour, minute, sec;

		hour = x / 3600;
		minute = (x / 60) % 60;
		sec = x % 60;

		System.out.println("Hour : " + hour);
		System.out.println("Minute : " + minute);
		System.out.println("Second : " + sec);

		sysout("byebye");
	}

	public static void quest03() {
		sysoutn(" 자리수따위 필요없다.그냥 정수 입력하세요 : ");
		int x = getVal();

		int j = 0; // 자리수
		int jm;
		//System.out.println("현재 페이지는 : " + i);
		
		
		// 먼저 자릿수를 구한다. 수를 10으로 나누고, 100으로 나누고 해서 값이 0 이 나오는 부분까지가 자릿수이다.
		for (int ij = 10; ij < 1000000000; ij *= 10) {
			j++;
			if ((x / ij) == 0) {
				//System.out.println(i+"번째 자리수는 "+ j + " 번째 자리를 가진다  ");
				break;
			}
		}
		jm=j-1;
		
		int cal[] = new int[j];
		
		for(int z=0;z= 10) {
			sum = 100 * x * 0.9;
		} else {
			sum = 100 * x;
		}
		sysoutn("당신이 산 물건의 합은 : ");
		sysout((int) sum);
	}

	public static void quest07() {
		sysoutn("특정한 정수를 적어주세요.");
		int x = getVal();

		if (x < 0) {
			sysout("Error!");
		} else {
			for (int i = 0; i < x; i++) {
				if (i % 3 == 0) {
					if (i == 0) {
						continue;

					}
					System.out.print(i + " ");
				}
			}
		}
		System.out.println();
	}

	public static void quest08() {
		sysoutn("구구단 출력");
		for (int i = 2; i < 10; i++)
			for (int j = 1; j < 10; j++)
				System.out.println(i + " * " + j + " = " + i * j);
	}

	public static void quest09() {
		int x, y, z, c;
		sysoutn("피보나치 숫자 원하는 갯수는");
		int su = getVal();
		x = 0;
		y = 1;
		z = x + y;

		System.out.print(x + ", " + y + ", ");
		for (int i = 0; i < su; i++) {

			sysoutn(z);
			sysoutn(", ");
			c = z;
			z = z + y;
			y = c;

		}
		System.out.println();
	}

	public static void quest10() {
		sysout("10 번째 난수 세개 완성");

		int[] x = new int[3];
		// 먼저 난수를 생성한다. 배열 전부를 특정 값으로 초기화 하면, for 문을 한번만 써도 될 것이다.
		sysoutn("지금까지 생성한 난수는 : ");
		for (int i = 0; i < 3; i++) {
			x[i] = getRandom();

			sysoutn(x[i]);
			sysoutn(" ");
		}
		// 생성한 숫자 중 두번째 숫자부터 비교해서, 중복(if)되면 중복 안될 때까지 while 문을 돌린다.
		for (int i = 1; i < 3; i++) {
			for (int j = 0; j < i; j++) {
				while (x[i] == x[j])
					x[i] = getRandom();
			}
		}

		System.out.println("세개의 난수는 : " + x[0] + " " + x[1] + " " + x[2]);
	}

	public static void quest11() {
		int[] charge = { 410, 910, 1600, 3850, 7300, 12940 };
		double[] power = { 60.7, 125.9, 187.9, 280.6, 417.7, 709.5 };
		int[] minus = { 0, 100, 200, 300, 400, 500 };
		double sum = 0;
		sysoutn("당신이 사용한 전력량을 입력해주세요");
		int x = getVal();
		int y = 0;
		System.out.println("당신이 사용한 전략량은 " + x + "입니다.");

		x--;
		switch (x / 100) {
		case 0: 			y = 0;			break;
		case 1:			y = 1;			break;
		case 2:			y = 2;			break;
		case 3:			y = 3;			break;
		case 4:			y = 4;			break;
		case 5:			y = 5;			break;
		default:			y = 5;			break;
		}
		x++;
		
		for (int i = 0; i <= y; i++) {
			if (i == y) {
				sum += charge[i] + (x - minus[i]) * power[i];
				System.out.println(charge[i] + "+ (" + (x - minus[i]) + ") * "
						+ power[i]);
			} else {
				sum += charge[i] + 100 * power[i];
				System.out.println(charge[i] + "+ " + 100 * power[i]);
			}
		}
		System.out.println("총 전기세는 : " + sum + "입니다");
	}

	public static void quest12() {
		
		
		int num[] =new int[10];
		for (int i : num)
			num[i] = 0;
		
		sysoutn("페이지 수를 입력해 주세요 :");
		int x = getVal();

		
		double c_time = System.currentTimeMillis();
		for (int i = 1; i <= x; i++) {
			int j = 0; // 자리수
			//System.out.println("현재 페이지는 : " + i);
				
			// 먼저 자릿수를 구한다. 수를 10으로 나누고, 100으로 나누고 해서 값이 0 이 나오는 부분까지가 자릿수이다.
			for (int ij = 10; ij < 1000000000; ij *= 10) {
				j++;
				if ((i / ij) == 0) {
					//System.out.println(i+"번째 자리수는 "+ j + " 번째 자리를 가진다  ");
					break;
				}
			}
						
			// 각 숫자를 자리수에 맞춰서 분산시킨다.

			int cal[] = new int[j];
			for (int iz : cal)
				cal[iz] = 0;

			int jm = j - 1;
			
			//현재 페이지를 분산시켜서 추가시킨다. 
			for (int z = 0; z < j; z++) {
				cal[z] = (i % (int) Math.pow(10, j - z)) / (int) (Math.pow(10, jm - z));
				
				switch (cal[z]) {
				case 0: num[cal[z]]++; break;
				case 1: num[cal[z]]++; break;
				case 2: num[cal[z]]++; break;
				case 3: num[cal[z]]++; break;
				case 4: num[cal[z]]++; break;
				case 5: num[cal[z]]++; break;
				case 6: num[cal[z]]++; break;
				case 7: num[cal[z]]++; break;
				case 8: num[cal[z]]++; break;
				case 9: num[cal[z]]++; break;
				}
			}

		}
		for(int i=0;i<=9;i++){
			System.out.println(i +"의 개수 : " + num[i]);
		}
		double after_time = System.currentTimeMillis();
		System.out.println("처음 시간 : "+ c_time);
		System.out.println("나중 시간 :"+after_time);
		double cha = after_time - c_time;
		System.out.println("결과 시간 :" + cha);
		System.out.println();
		
	}
	
	public static void quest13(){
		for (int j = 1; j < 10; j++) {
			for (int i = 2; i < 10; i++) {
				System.out.print(i + " * "+ j + " = " + i*j + "\t");
			}
			System.out.println();
			
		}
	}

}