본문 바로가기
수업 문제(국비 지원)/Java

[JAVA] 2022.08.25 - java 반복문

by byeolsub 2023. 4. 27.
 * 강아지와 병아리 개체수의 합과 다리수의 합을 입력받아
 * 강아지,병아리의 각각의 개체수를 출력하는 프로그램 작성하기
 * 
 * [결과]
 * 강아지와 병아리 합
 * 10
 * 강아지와 병아리 다리의 합
 * 30
 * 강아지 5마리, 병아리 5마리
package chap5;

import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("강아지와 병아리의 합개체수를 입력하세요");
		int dnc = scan.nextInt();
		System.out.println("강아지와 병아리의 다리합계를 입력하세요");
		int leg = scan.nextInt();

		int dog = (leg - (2 * dnc)) / 2;
		int chicken = dnc - dog;

		if (dnc > 1000 || leg > 4000) {
			System.out.println("숫자를 잘못입력하셨습니다.");
		} else if (dog > 0 && chicken > 0 && 4 * dog + 2 * chicken == leg) {
			System.out.println("강아지의 수:" + dog + ",병아리의 수:" + chicken);
		} else {
			System.out.println();
		}

	}
}

 [결과]
2단	3단	4단	5단	
2*2=4	3*2=6	4*2=8	5*2=10	
2*3=6	3*3=9	4*3=12	5*3=15	
2*4=8	3*4=12	4*4=16	5*4=20	
2*5=10	3*5=15	4*5=20	5*5=25	
2*6=12	3*6=18	4*6=24	5*6=30	
2*7=14	3*7=21	4*7=28	5*7=35	
2*8=16	3*8=24	4*8=32	5*8=40	
2*9=18	3*9=27	4*9=36	5*9=45	

6단	7단	8단	9단	
6*2=12	7*2=14	8*2=16	9*2=18	
6*3=18	7*3=21	8*3=24	9*3=27	
6*4=24	7*4=28	8*4=32	9*4=36	
6*5=30	7*5=35	8*5=40	9*5=45	
6*6=36	7*6=42	8*6=48	9*6=54	
6*7=42	7*7=49	8*7=56	9*7=63	
6*8=48	7*8=56	8*8=64	9*8=72	
6*9=54	7*9=63	8*9=72	9*9=81	
package chap5;

public class Test2 {
	public static void main(String[] args) {

		for (int i = 2; i <= 5; i++) {
			System.out.print(i + "단\\t");
		}
		System.out.println();

		for (int j = 1; j <= 9; j++) {
			for (int i = 2; i <= 5; i++) {
				System.out.print(i + "*" + j + "=" + i * j + "\\t");
			}
			System.out.println();
		}

		for (int i = 6; i <= 9; i++) {
			System.out.print(i + "단\\t");
		}
		System.out.println();

		for (int j = 1; j <= 9; j++) {
			for (int i = 6; i <= 9; i++) {
				System.out.print(i + "*" + j + "=" + i * j + "\\t");
			}
			System.out.println();
		}

	}
}

1. 방정식 2x+4y=10의 모든 해를 구하는 프로그램을 작성하시오.
    단 x와 y는 정수이고  각각의 범위는 0<=x<=10, 0<=y<=10임 
[결과]
x=1,y=2
x=3,y=1
x=5,y=0
package chap5;

public class Test3 {
	public static void main(String[] args) {
		for (int i = 0; i <= 10; i++) {
			for (int j = 0; j <= 10; j++) {
				if (((2 * i) + (4 * j)) == 10) {
				  System.out.print("x : " + i + "\\t");
				  System.out.println("y: " + j);
				}
			}
		}
	}
}

1 ~ 100사이의 임의의 값을 시스템이 저장하고, 사용자는 숫자를 입력받아 
  저장된 숫자를 맞추는 프로그램 작성하기

[결과]
1과100사이의 값을 입력 : 50
더작은수를 입력하세요
1과100사이의 값을 입력 : 25
더작은수를 입력하세요
1과100사이의 값을 입력 : 10
더큰수를 입력하세요
1과100사이의 값을 입력 : 15
더큰수를 입력하세요
1과100사이의 값을 입력 : 20
더작은수를 입력하세요
1과100사이의 값을 입력 : 18
더작은수를 입력하세요
1과100사이의 값을 입력 : 17
맞췄습니다.
시도 횟수는 7입니다.
package chap5;

import java.util.Scanner;

public class Test4 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("1~100사이의 숫자를 입력:");
		int n = scan.nextInt();
		int num = (int)(Math.random()*100)+1;
		int count = 0;
		while(true){
			if(n<num){
				System.out.println("더큰수를 입력하세요");
			}
			else if(n>num){
				System.out.println("더작은수를 입력하세요");
			}
			else{
				System.out.println("맞췄습니다.");
				System.out.println("시도 횟수는"+count+"입니다.");
				break;
			}
			System.out.println("1~100사이의 숫자를 입력:");
			n = scan.nextInt();
			count++;
		}
	}
}
import java.util.Scanner;

public class Test4_A {
	public static void main(String[] args) {
		//answer : 1 ~ 100 사이의 임의의 수 저장
		int answer = (int) (Math.random() * 100) + 1;
		int input = 0; 
		int count = 0;
		Scanner s = new Scanner(System.in);
		while (true) {  //무조건 반복. 내부에 break 문장이 없으면 무한반복. 
			count++;
			System.out.print("1과100사이의 값을 입력 : ");
			input = s.nextInt();
			if (answer > input)
				System.out.println("더큰수를 입력하세요");
			else if (answer < input)
				System.out.println("더작은수를 입력하세요");
			else { //정답 입력
				System.out.println("맞췄습니다.");
				break; //반복문에서 빠짐. 
			}
		}
		System.out.println("시도 횟수는 " + count + "입니다.");

	}


package chap5;
/* 
 * [결과]
 * (1)+(1+2)+(1+2+3)+ ... +(1+2+3+4+5+6+7+8+9)+(1+2+3+4+5+6+7+8+9+10)=220
 */

public class Test5 {
	public static void main(String[] args) {
		int i=0;
		int sum=0;
		for(i=0;i<=10;i++){
			sum=i*(i+1)*(i+2)/6;
		}
		System.out.println(sum);
	}
}

package chap5;
/*
삼각형의 높이를 입력하세요
3
  *  
 *** 
*****

 */
import java.util.Scanner;

public class Test6 {
	public static void main(String[] args) {
		System.out.println("삼각형의 높이");
		Scanner scan = new Scanner(System.in);
		int len = scan.nextInt();
		
		for (int i=1;i<=len;i++){
			for(int k=1;k<=len;k++) {
				if(i <= k) System.out.print(" ");
			}
			for(int j=1;j<=i*2-1;j++){
				System.out.print("*");
			}
		System.out.println();
		}
	}
}


package chap5;
/*
[결과]
  
길이를 홀수로 입력하세요
5

*****
 ***
  *
 ***
*****
  
 */

import java.util.Scanner;

public class Test7 {
	public static void main(String[] args) {
		System.out.println("삼각형의 높이");
		Scanner scan = new Scanner(System.in);
		int len = scan.nextInt();
//방법1 내가한것-------------------------------------------------------
		for (int i=len;i>=1;i--){
			for(int k=1;k<=len;k++) {
				if(i <= k) System.out.print(" ");
			}
			for(int j=1;j<=i*2-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
		for (int i=2;i<=len;i++){
			for(int k=1;k<=len;k++) {
				if(i <= k) System.out.print(" ");
			}
			for(int j=1;j<=i*2-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
//방법2선생님풀이======================================================		
		for(int i=0;i<=len/2;i++){
			for(int j=0;j<len-i;j++) {
				if(j<i)
					System.out.print(" ");
				else
					System.out.print("*");
			}
			System.out.println();
		}
		for(int i = len/2+1; i<len; i++) {
			for(int j=0;j<=i;j++) {
				if(j>=len-i-1&&j<=i)
					System.out.print("*");
				else
					System.out.print(" ");
			}
			System.out.println();		
		}
	}
}