크기 입력받아 삼각형 출력(1~3번)
1.
*
**
***
****
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (i >= j) {
System.out.print("*");
}
}
System.out.println();
}
● 강사님
Scanner sc = new Scanner(System.in);
System.out.println("size:");
int size = sc.nextInt():
int i, j;
for (i = 1; i <= size; i++) { //줄을 만드는 for
for (j = 0; j < i; j++) {
System.out.print("*"); //i번째 줄에 *출력
}
System.out.println(); //개행
}
2.
*
**
***
****
for (int i = 3; i >= 0; i--) {
for (int j = 0; j < 4; j++) {
if (i > j) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
● 강사님
int size = 0, i, j;
char ch = ' '; //출력할 문자
Scanner sc = new Scanner(System.in);
System.out,println("size:");
size: sc.nextInt();
for (i = size; i > 0; i--) { //줄 카운트, 다운 카운팅
//새 줄이 시작이 될 때마다
ch = ' '; //출력할 문자를 ' '로 초기화
for (j = 1; j <= size; j++) {
if (i == j) {
ch = '*'; //새로운 값으로 할당하면 계속 같은 값 가짐
}
System.out.print(ch);
}
System.out.println();
}
3.
*
***
*****
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
if (i == 2 || j == 2) {
System.out.print("*");
} else if ((i + j) == 2 || (j - i) == 2) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
● 강사님
int size = 0, i, j; //0을 초기화해줘야
char ch = ' '; //출력할 문자
Scanner sc = new Scanner(System.in);
System.out.println("size:");
size = sc.nextInt();
int m = size/2; //size가 5일 경우 2.5가 되지만 int는 정수타입이기 때문에 2가 됨
for(i = 0; i <= m; i++) { //줄 카운트
//' ' 출력 루프
for(j = 0; j < m - i; j++) {
System.out.print(' ');
}
//'*' 출력 루프
for(j = 0; j < 2 * i + 1; j++) {
System.out.print('*');
}
System.out.println(); //개행
}
변수를 만들 때
int, double, float --- 0으로 초기화
String, char --- ' ', " " 로 초기화
배열도 0으로 초기화
깔끔한 작동을 위해,,,
4. 입력받은 숫자의 약수 구하기
(물어봄)
Scanner sc = new Scanner(System.in);
System.out.println("숫자 입력");
int num = sc.nextInt();
for (int d = 1; d <= num; d++) {
if ((num % d) == 0) {
System.out.print(d);
}
}
● 강사님
Scanner sc = new Scanner(System.in);
System.out.println("num: ");
int num = sc.nextInt();
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
System.out.print(i + "\t");
}
}
5. 2 ~ 100사이의 소수출력(약수가 1과 자신만 있는 숫자)
(홀수 구하고 그 중에서 배수 빼고 싶었어..)
(블로그 글 검색 ㅠ)
for (int p = 2; p <= 100; p++) {
for (int n = 2; n <= 100; n++) {
if (p != n && (p % n) == 0) { //p와 n이 같아지기 전에 나눠지는 수가 하나라도 나오면 break
break;
}
if (p == n) {
System.out.println(p + " ");
}
}
}
● 강사님
1. 각 수(2~100)의 약수를 구한다.
1-1. 각 수를 2~(자신-1)까지의 값으로 나눠서 약수를 구함
(1, 자기자신으로는 당연히 나눠지기 때문에 불필요함)
2. 약수의 개수가 2개인 것 출력
int i, j, cnt; //cnt -- 약수의 개수를 카운팅 할 변수
for (i = 2; i <= 100; i++) { //i -- 소수인지 확인할 대상
cnt = 0; //cnt 초기화 -- 숫자(i)가 바뀌면 새로 카운트 해야하기 때문에
for (j = 2; j < i; j++) { //i의 약수를 구해서 카운팅하는 루프
if (i % j == 0) { //약수 조건 만족하면 카운팅 --> 약수 개수
cnt++;
}
}
// 현재 i가 소수인가 확인
if (cnt == 0) {
System.out.print(i + "\t"); //맞으면 출력
}
}
6. 피보나치 수열 100개 출력
1, 1, 2, 3, 5, 8, 13, 21
(블로그 글 검색 ㅠ)
int fnum = 1;
int snum = 1;
System.out.print(fnum + " ");
System.out.print(snum + " ");
for (int n = 3; n <= 100; n++) {
int tnum = fnum + snum;
System.out.print(tnum + " ");
fnum = snum;
snum = tnum;
● 강사님
//숫자 단위가 커서 int 대신 long
long a = 1, b = 1, c = 0, i; //앞 수가 1 1 이니까 a와 b를 1로 초기화
for (i = 0, i < 100; i++) {
if (i < 2) {
System.out.print("1\t");
} else {
c = a + b;
System.out.print(c + "\t");
a = b;
b = c;
}
}