Java 수업/과제
입력받은 수까지 3,6,9이 포함되어있는지를 확인하는 코드
Booda
2019. 5. 19. 18:44
반응형
문제 1.
3,6,9게임을 만드시오.
단 범위는 (1~100까지의 숫자,10번째줄에선 줄바꿈을 하시오.)
package example;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num_1 = sc.nextInt();
int count = 1;
int i, j;
if (count != num_1) {
for (i = 1; i <= (num_1 / 10); i++) {
for (j = 0; j < 10; j++) {
if ((count / 10 != 0 && (count / 10) % 3 == 0) || (count % 10 != 0 && (count % 10) % 3 == 0)) {
System.out.printf("%3s", "*");
count++;
} else {
System.out.printf("%3d", count);
count++;
}
}
System.out.println();
}
}
sc.close();
}
}
위와 같이하게되면 1~100까지의 숫자는 잘 입력이 된다. 하지만 문제점이라면 100이상의 숫자를 하게 되면 10을 나눈 몫의 값이 3으로 나누어떨어질때 ex)120....150...등등 에도 *표시를 하기때문에 위의 코드에선 매우 한정적이고 실용적이지가 않다.
단지 숙제만을 위한 1차원적인 코드이다.
문제 2.
369 게임을 만드는데 입력한 숫자까지 3,6,9가 들어간 숫자는 모두 *표시를 한다.
package practice.game369;
import java.util.Scanner;
public class Game369 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num_1 = sc.nextInt(); // int 형식으로 원하는 숫자까지 받음
int i;
for (i = 1; i <= num_1; i++) {
String str = String.valueOf(i); // int형식의 i를 string형식으로 변환
String len = String.valueOf(num_1); // int형식의 num_1을 string형식으로 변환
if (i % 10 == 0) { // 10의 배수인경우 줄바꿈을 해주어야 하기 때문에 따로 작성을 해놓은 것이다.
if (str.contains("3") || str.contains("6") || str.contains("9")) {
System.out.printf("%" + (len.length() + 1) + "s \n", "*"); // 똑같이 3,6,9체크를 하는데 거기서 줄바꿈이 들어가는것만 다를뿐
// 똑같다.
continue;
} // continue를 써서 다음동작이 중복실행되지않게 넘겨줘야한다 아니면 밑의 경우에도 작동이 되기때문에 넘어가게 해야한다.
else {
System.out.printf("%" + (len.length() + 1) + "d \n", i); // 중간에 len.length()+1을 쓴 이유는 입력되는 글자수가 3자이면
// 총 자릿수가 공백 포함해서 3개이지만 난 한칸 더 원해서 +1을
// 해주었다.
continue;
}
} else {
if (str.contains("3") || str.contains("6") || str.contains("9")) {
System.out.printf("%" + (len.length() + 1) + "s", "*");
continue;
}
System.out.printf("%" + (len.length() + 1) + "d", i);
}
}
// 위 소스 참조 출처 :https://baekh-93.tistory.com/10
// 위 페이지에서 참조한것은 str로 형변환 한것을 비교하기위한 contains 사용법을 가져옴.
sc.close();
}}
위의 코드는 숫자를 문자열로 치환하여 하는것이기때문에 각각 들어가는 숫자가 포함되어있는지를 확인하는 구문이다.
len의 변수를 String으로 형변환 한 이유는 서식문자를 쓸때 입력되는 숫자보단 커야하니까 그숫자의 길이보단 크게 만들거나 같게 만들어야하기 때문에 따로 넣어줌.
반응형