주사위 경우의 수 for문

leeeexxxx·2022년 4월 6일
0

java

목록 보기
6/10


주사위 2개를 던졌을때

2의 배수이면 길동이가 5000원 받고
3의 배수이면 철수가 10000원을 받고
4의 배수이면 영희가 15000원을 받고

셋다 아니면 각 5000원씩 벌금을 낸다.

주사위를 모두 던졌을때 나오는 경우의 수는 ??

package ch02;

public class dice6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum1 = 0;
		int sum2 = 0;
		int sum3 = 0;
		int sum4 = 0;
		for (int a = 1; a <= 6; a++) {
			for (int b = 1; b <= 6; b++) {
				if ((a + b) % 3 == 0) {
					sum1++;

				}
				if ((a + b) % 4 == 0) {
					sum2++;
				}
				if ((a + b) % 2 == 0) {
					sum3++;
				}
				if (((a + b) % 3 != 0) && ((a + b) % 4 != 0) && ((a + b) % 2 != 0)) {
					sum4++;
				}
			}

		}
		int ceolsu = sum1 * 10000;
		int yeonghee = sum2 * 15000;
		int gilldong = sum3 * 5000;
		int beol = sum4 * 5000;//벌금
		System.out.printf("3의 배수인 경우: %d  4의배수인경우: %d 2의배수인경우%d 
        셋다아닌경우:%d\n ", sum1, sum2, sum3, sum4);
		System.out.printf("철수가 내야하는 돈: %d 
        영희가 내야하는돈 : %d 
        길동이가 내야하는돈 :  %d\n ",
        (ceolsu - beol), (yeonghee - beol),(gilldong - beol));
	}

}

메서드 분리

package ch02;

public class dice6_method {

	public static void main(String[] args) {

		int gildong = dice(2);
		int ceolsu = dice(3);
		int yeonghee = dice(4);
		int beol = 0;//벌금 
		System.out.printf("철수가: %d  영희: %d 길동 : %d\n ", ceolsu, yeonghee, gildong);

		for (int a = 1; a <= 6; a++) {
			for (int b = 1; b <= 6; b++) {
				if (((a + b) % 3 != 0) && ((a + b) % 4 != 0) && ((a + b) % 2 != 0)) {
					beol++;
				}
			}
		}

		System.out.printf("철수가 내야하는 돈: %d 
        영희가 내야하는돈 : %d
        길동가 내야하는돈 : %d\n ", 
        ((ceolsu * 10000) - (beol * 5000)),
		((yeonghee * 15000) - (beol * 5000)),
        ((gildong * 5000) - (beol * 5000)));

	}

	private static int dice(int n) {
		int sum = 0;
		for (int a = 1; a <= 6; a++) {
			for (int b = 1; b <= 6; b++) {
				if ((a + b) % n == 0) {
					sum++;
				}
			}
		}
		return sum;
	}

}

0개의 댓글

관련 채용 정보