자바 코딩

반복문과 배열

akasha.park 2023. 3. 13. 14:19
Quiz8] 주민번호 체크
   13자리의 숫자 스트링 중에서 앞에서부터 12자리의 숫자 스트링을 각 숫자로 분할하여 각 자리의 수에 가중치 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 곱합니다.
   곱한수를 모두 더하여 총합을 구합니다.
   총합을 11로 나눈 나머지를 구합니다.
   그 나머지를 11에서 뺀 결과가 CHECK DIGIT 입니다.
  뺀 결과가 2자리수인 경우에는 2자리수를 10으로 나눈 나머지가 CHECK DIGIT가 됩니다.
  CHECK DIGIT의 값이 입력 숫자 스트링의 13번째 숫자와 같으면 "CORRECT", 다르면 "INCORRECT"를 출력합니다.
HINT> (11-(총합%11))%10  


package lab.java.basic;

import java.util.Scanner;

public class Quiz8_1 {
    /*주민번호 체크*/
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("주민등록번호 입력(xxxxxx-xxxxxxx)>>");
		String juminNumber = input.next();
		int[] jumin = new int[13];
		for (int i=0, j=0;i<juminNumber.length();i++){
			if(juminNumber.charAt(i)=='-') continue;
			jumin[j++] = juminNumber.charAt(i) - '0';
		}
		int total = 0, weight=2;
		for (int i=0;i<jumin.length-1;i++){			
			if(weight==10) weight=2;
			total +=  (jumin[i])  * weight ;
			weight++;
		}
		int checkdigit = (11-(total%11))%10;		
		if(checkdigit ==(jumin[12])) {
			System.out.println("Correct!!");
		}else {
			System.out.println("InCorrect!!");
		}

	}

}


package lab.java.basic;

import java.util.Scanner;

public class Quiz8 {
    /*주민번호 체크*/
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("주민등록번호 입력(xxxxxx-xxxxxxx)>>");
		String juminNumber = input.next();
		char[] jumin = new char[13];
		for (int i=0, j=0;i<juminNumber.length();i++){
			if(juminNumber.charAt(i)=='-') continue;
			jumin[j++] = juminNumber.charAt(i);
		}
		int total = 0, weight=2;
		for (int i=0;i<jumin.length-1;i++){			
			if(weight==10) weight=2;
			total +=  (jumin[i]-48)  * weight ;
			weight++;
		}
		int checkdigit = (11-(total%11))%10;
		//System.out.println( checkdigit);
		//System.out.println( total);
		if(checkdigit ==(jumin[12]-'0')) {
			System.out.println("Correct!!");
		}else {
			System.out.println("InCorrect!!");
		}

	}

}

Quiz 9] UpDown게임
컴퓨터가 1~100 숫자(정수 범위) 중 하나를 랜덤으로 정합니다. (이를 알려주지 않습니다.)
사용자는 이 숫자를 맞추어야 합니다.
입력한 숫자보다 정답이 크면 → "UP" 출력,
입력한 숫자보다 정답이 작으면 → "DOWN" 출력.
정답을 맞추면 → "정답"을 출력하고, 지금까지 숫자를 입력한 횟수를 알려줍니다.

package lab.java.basic;

import java.util.Random;
import java.util.Scanner;

public class Quiz9 {
    /*UpDown게임*/
	public static void main(String[] args) {
		Random r = new Random();
		int computer = r.nextInt(100)+1;
        //int computer = (int)(Math.random()*100)+1;
		Scanner input = new Scanner(System.in);
		int count=1;
		do {
			System.out.print("1~100 사이에 내가 생각한 수는 ?");
			int num = input.nextInt();
			if (num==computer) {
				System.out.println("You Win!!!"); 
				break;
			}else if(num>computer) {
				System.out.println("Down"); 
			}else if(num<computer) {
				System.out.println("Up"); 
			}
			count++;
		}while(count<6);
		if(count==6) System.out.println("I Win!!!! ");	 
		System.out.println("내가 생각한 수 : "+computer);	 
	}

}

 

Day6-Quiz14>while문과 Math.random()메소드를 이용해서 두 개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성하시오
package lab.java.basic;


public class Quiz14 {

	public static void main(String[] args) {
		 while(true) {//무한루프
			 int i = (int)(Math.random()*6+1);
			 int j = (int)(Math.random()*6+1);
			 if( i+j ==5) {
				 System.out.println(i+", "+j);
				 break;
			 }
			 System.out.println(i+", "+j);
		 }
		
	}
}


Day6-Quiz15> 키보드로부터 문장을 입력받고 오른손으로 입력한 값과 왼손으로 입력한 갓을 각각 구하는 프로그램을 작성하세요
(단, 입력 값은 영문 대소문자와 숫자로 제한합니다.)
오른손 : A,B,C,D,E,F,G,Q,R,S,T,V,W,X,Z,1,2,3,4,5
왼손 : H,I,J,K,L,M,N,O,P,U,Y,6,7,8,9,0

package lab.java.basic;

import java.util.Scanner;

public class Quiz15 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("입력하세요 :");
		int left = 0, right = 0;
		String st = input.nextLine().toUpperCase();
		int cnt = st.length();
		for (int i = 0; i < cnt; i++) {
			char ch = st.charAt(i);
			switch (ch) {
			case 'A':
			case 'B':
			case 'C':
			case 'D':
			case 'E':
			case 'F':
			case 'G':
			case 'Q':
			case 'R':
			case 'S':
			case 'T':
			case 'V':
			case 'W':
			case 'X':
			case 'Z':
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
				left++;
				break;
			case 'H':
			case 'I':
			case 'J':
			case 'K':
			case 'L':
			case 'M':
			case 'N':
			case 'O':
			case 'P':
			case 'U':
			case 'Y':
			case '6':
			case '7':
			case '8':
			case '9':
			case '0':
				right++;
				break;
			}

		}
		System.out.println("왼손:" + left + ", 오른손 :" + right);

	}

}