369게임 1~100 까지의 자연수를 나열하되, 10개 단위로 줄바꿈을 하고 숫자에 3,6,9 중 하나라도 있으면 * 표시를 하기
int dan = 1;
while (dan <= 100) {
int dan1 = dan%10; //일의 자리
int dan2 = dan/10; //십의 자리
if(dan1 ==3||dan1 ==6||dan1 == 9||dan2==3||dan2 == 6||dan2 == 9) {
System.out.printf("%4S","*");
}else {
System.out.printf("%4d", dan);
}
//줄바꿈
if (dan % 10 == 0) {
System.out.println();
}
dan++;
}
- 응용 : 입력받은 임의의 숫자까지 만들기
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int i = 1;
while (i <= number) {
int k = i;
while (k > 0) {
int d = k % 10;
if (d == 3 || d == 6 || d == 9) {
System.out.printf("%5s", "*");
break;
}
k /= 10;
}
if (k == 0) {
System.out.printf("%5d", i);
}
if (i % 10 == 0)
System.out.println();
i++;
}
sc.close();
입력받는 수의 자릿수를 모르기 때문에 자릿수 대로 나누지 않고
k/=10 을 반복 시켜서 한자리씩 나눠서 비교하게 했다.
결과
