반응형
별찍기 5번
출력할 줄 수: 5
*
***
*****
*******
*********
더보기
import java.util.Scanner;
public class Star5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 5번");
System.out.print("출력할 줄 수: ");
int n = scanner.nextInt();
for (int i = 1; i <= n; i++) {
String star = new String();
//공백을 담당하는 j for 문
for (int j = n; j > i; j--) {
star += " ";
}
//별을 담당하는 k for 문
//5번의 별의 갯수는 2 * i - 1개 만큼의 별이 각 줄에 들어가게 된다.
for (int k = 0; k < i * 2 - 1; k++) {
star += "*";
}
System.out.println(star);
}
scanner.close();
}
}
별찍기 6번
출력할 줄 수: 5
*********
*******
*****
***
*
더보기
import java.util.Scanner;
public class Star6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 6번");
System.out.print("출력할 줄 수: ");
int n = scanner.nextInt();
// String star = new String();
for (int i = n; i > 0; i--) {
String star = new String();
// 공백을 담당하는 j for 문
for (int j = n; j > i; j--) {
star += " ";
}
// 별을 담당하는 k for 문
// 5번의 별의 갯수는 2 * i - 1개 만큼의 별이 각 줄에 들어가게 된다.
for (int k = 0; k < i * 2 - 1; k++) {
star += "*";
}
System.out.println(star);
}
scanner.close();
}
}
별찍기 7번
출력할 줄 수: 5
*
**
***
****
*****
****
***
**
*
더보기
import java.util.Scanner;
public class Star7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 7번");
System.out.print("출력할 줄 수: ");
int userNumber = scanner.nextInt();
for(int i = 1; i <= 2 * userNumber - 1; i++) {
String stars = new String();
//if문을 통해서 i 가 userNumber 보다 작을때 -> 윗부분
// 그외 -> 아랫부분이 되게 if-else 구조를 만들어보자
if(i < userNumber) {
//윗부분 별을 stars에 넣어준다.
for(int j = 1; j <= i; j++) {
stars += "*";
}
}else {
//아랫부분 별을 stars에 넣어준다.
//아랫부분의 경우 userNumber가 5면
//i가 5 6 7 8 9 일때 else로 오게 된다.
//즉 j = i 로 초기화 하면 우리가 원하는 모양이 나오지 않는다!!!
//따라서 우리는 i를 그대로 쓸 수 없고
//대신 아랫부분에 맞게 변수를 만들어서 쓰면 된다!!!
int lowerI = i - userNumber + 1;
for(int j = lowerI; j <= userNumber; j++) {
stars += "*";
}
}
System.out.println(stars);
}
scanner.close();
}
}
별찍기 8번
출력할 줄 수: 5
*
**
***
****
*****
****
***
**
*
더보기
import java.util.Scanner;
public class Star8 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 8번");
System.out.print("출력할 줄 수: ");
int userNumber = scanner.nextInt();
for (int i = 1; i <= 2 * userNumber - 1; i++) {
String stars = new String();
if (i < userNumber) {
// 윗부분
// 공백 담당
for (int j = 1; j <= userNumber - i; j++) {
stars += " ";
}
// 별 담당
for (int j = 1; j <= i; j++) {
stars += "*";
}
} else {
// 아랫부분
int lowerI = i - userNumber + 1;
// 공백담당
for (int j = 1; j <= lowerI - 1; j++) {
stars += " ";
}
// 별담당
for (int j = lowerI; j <= userNumber; j++) {
stars += "*";
}
}
System.out.println(stars);
}
scanner.close();
}
}
별찍기 9번
출력할 줄 수: 5
*
***
*****
*******
*********
*******
*****
***
*
더보기
import java.util.Scanner;
public class Star9 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 9번");
System.out.print("출력할 줄 수: ");
int userNumber = scanner.nextInt();
for (int i = 1; i <= 2 * userNumber - 1; i++) {
String stars = new String();
if (i < userNumber) {
// 윗부분
// 공백 담당 j for 문
for (int j = 1; j <= userNumber - i; j++) {
stars += " ";
}
// 별 담당 j for 문
for (int j = 1; j <= 2 * i - 1; j++) {
stars += "*";
}
} else {
// 아랫부분
int lowerI = 2 * userNumber - i;
// 공백 담당 j for 문
for (int j = 1; j <= userNumber - lowerI; j++) {
stars += " ";
}
// 별 담당 j for 문
for (int j = 1; j <= 2 * lowerI - 1; j++) {
stars += "*";
}
}
System.out.println(stars);
}
scanner.close();
}
}
입력
>5
*********
**** ****
*** ***
** **
* *
* *
** **
*** ***
**** ****
*********
더보기
import java.util.Scanner;
public class Star10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("입력");
System.out.print(">");
int n = scanner.nextInt();
// 1 ~ 5 줄
for (int i = 1; i <= n; i++) {
String star = new String();
for (int k = n; k >= i; k--) {
star += "*";
if (i == 1 && k == n) {
star = "";
}
}
for (int j = 2; j < i * 2 - 1; j++) {
star += " ";
}
for (int k = n; k >= i; k--) {
star += "*";
}
System.out.println(star);
}
// 6 ~ 9줄
for (int i = n; i > 0; i--) {
String star = new String();
for (int k = n; k >= i; k--) {
star += "*";
if (i == 1 && k == n) {
star = "";
}
}
for (int j = 2; j < i * 2 - 1; j++) {
star += " ";
}
for (int k = n; k >= i; k--) {
star += "*";
}
System.out.println(star);
}
scanner.close();
}
}
import java.util.Scanner;
public class sss {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("별찍기 10번");
System.out.print("출력할 줄 수: ");
int userNumber = scanner.nextInt();
for (int i = 1; i <= 2 * userNumber - 1; i++) {
String stars = new String();
if (i == 1 || i == 2 * userNumber - 1) {
// 첫번째 줄과 마지막 줄은
// 별이 2*userNumber-1 개가 들어가므로
// j for 문 1개로 별만 넣어준다.
for (int j = 1; j <= userNumber * 2 - 1; j++) {
stars += "*";
}
} else if (i < userNumber) {
// 첫번째 줄과 마지막 줄이 아니고
// userNumber 보다 작은 경우(=즉 첫줄을 제외한 윗부분)
// 여기에는
// i가 2~userNumber -1 까지 들어온다.
// 하지만 i가 2일때, 실질적으론 여기서 첫번째줄이 된다.
// 그러므로 변수하나 만들어서 윗부분의 i를 담당하게 해주자!
int upperI = i - 1;
// 왼쪽 별 담당 j for 문
for (int j = 1; j <= userNumber - upperI; j++) {
stars += "*";
}
// 가운데 공백 담당 j for 문
for (int j = 1; j <= 2 * upperI - 1; j++) {
stars += " ";
}
// 오른쪽 별 담당 j for 문
for (int j = 1; j <= userNumber - upperI; j++) {
stars += "*";
}
} else {
// 그 외의 경우(=아랫부분 중 가장 마지막 줄을 제외한 경우)
int lowerI = i - userNumber + 1;
// 왼쪽 별을 담당하는 j for 문
for (int j = 1; j <= lowerI; j++) {
stars += "*";
}
// 가운데 공백을 담당하는 j for 문
// 여기서 공백의 갯수는 몇개일까?
// 사실 공백의 갯수는 가로 폭 의 int 값 - 별의 갯수 가 아닐까?
// 가로폭의 값은? 2 * userNumber - 1
// 별의 갯수는? 2 * lowerI
// 가로폭 - 별의 갯수
// = 2 * userNumber - 1 - 2 * lowerI
// == 2 * (userNumber - lowerI) - 1;
for (int j = 1; j <= 2 * (userNumber - lowerI) - 1; j++) {
stars += " ";
}
for (int j = 1; j <= lowerI; j++) {
stars += "*";
}
}
System.out.println(stars);
}
scanner.close();
}
}
반응형
'Dev > Java' 카테고리의 다른 글
Java - 클래스 이용 차 관리 연습 (0) | 2020.08.14 |
---|---|
Java - 클래스 ( Class ) (0) | 2020.08.14 |
Java - 예제 ) 별찍기 01 (0) | 2020.08.12 |
Java 예제 (0) | 2020.08.11 |
Java - 무한반복문 ( Infinite Loop ) (0) | 2020.08.11 |