4일차 - 과제

|
import java.util.Scanner;

public class 과제0627 {

	public static void main(String[] args) {

		
//과제1> 구구단을 출력하되, 곱하는 수가 단보다 커지면 중지합니다.(ex. 2단 : 2x2까지만 출력)
//		1
//		2 4
//		3 6 9
//		4 8 12 16
//		5 10 15 20 25
//		6 12 18 24 30 36
//		7 14 21 28 35 42 48
//		8 16 24 32 40 48 56 64
//		9 18 27 36 45 54 63 72 81
		
		for(int i = 1; i<=9; i++) { // i : 단=행(row)
		for(int j = 1; j<=i ; j++) { // j: 곱하는 수
				System.out.print(i*j);
				System.out.print(" ");
			}
			System.out.println(); //줄바꿈 의미
		}	
		
//과제2> 다음과 같이 출력하세요.
//		*******
//		 *****
//		  ***
//		   *

		for(int i = 4; i>=1; i--) {
		for(int j = i ; j<=3 ; j++) {
				System.out.print(" ");
			}
			for(int k = 1 ; k<=2*i-1 ; k++) {
				System.out.print("*");
			}
			System.out.println();
		}	
		
        //강사님 풀이
		for(int i = 0; i<4; i++) { // 바깥부분 반복
		for(int j = 0; j<i; j++) { //바깥 블랭크(blank) = null = " "
				System.out.print(" ");
			}
			for(int k = 0 ; k<(5-i)*2-3 ; k++) { // 공식(rule)을 생각해BOA요.
				System.out.print("*");
			}
			System.out.println(); // 줄바꿈
		}
        
		
//과제3> 1~100사이의 연산의 합계를 구하세요. (숫자는 증가, 연산자는 덧셈,뺄셈 반복)
//		1-2+3-4+5-6+7-8+.......100 = ?   
//		3가지 이상의 방법을 사용하여 풀어보세요.		

		//1. for문
		int sum = 0;
		for(int i = 1; i<=100; i++) {
			if(i%2 == 1) 
			sum+=i;
			else
			sum-=i;
		}System.out.println("for문 : " + sum); // -50
        
        //강사님 풀이1 - 문제에 대한 흐름, 규칙을 잘 찾아내는 것이 중요하다.
		int sum = 0, odd = 0, even=0;
		for(int i = 1; i<=100; i++) {
			if(i%2 == 1) // 홀수연산
			odd+=i;
			else
			even-=i;     // 짝수연산
		}System.out.println("for문 : " + (odd + even)); // -50
		
        //강사님 풀이2 - true, false이용
        int i, sum=0, sw=1;//sw=true, sw=false
		for(i=1; i<=100; i++) {
			if(sw ==1) { // 홀수연산
				sum+=i;
				sw=0; //false
			}else {
				sum-=i; // 짝수연산
				sw=1; // true
			}
		}System.out.println("true, false이용 : " + sum); // -50
        
        //강사님 풀이3 - 부호변환(일반 수학적용)
		int sum = 0, i, p=1; //p:부호변환용 기호(+,-) 변수
		for(i=1; i<=100; i++) {
			sum+=i * p;// sum = sum + (i * p);  //p값은 변동되지 않고, 아래 변환지점에서 변환된다.
			p*=-1;//p = p * -1; // 부호변환 지점(부분)
		}
		System.out.println("부호변환이용 : " + sum); // -50
        
        //강사님 풀이4 
		int sum = 0, i;
		for(i=1; i<=100; i++) {
			if(i/2 != i/2.0) //0.0
				sum+=i;		 //0 not equal 0.5 = 1, 1 1.5 =3
			else			 //2 2 2.0=4
				sum-=i;
		}System.out.println("4번방법 : " + sum); // -50
        
		//2. while문
		int i = 1, sum = 0;
		while(i<=100){
			if(i%2 == 1) 
			sum+=i;
			else
			sum-=i;
			i++;
		}System.out.println("while문 : " + sum); // -50
		      
      	//3. do ~ while문
		int sum=0, i = 1;
		do{
			if(i%2 == 1)
			sum+=i;
			else
			sum-=i;
			i++;
		}while(i<=100);
		System.out.println("do ~ while문 :" + sum); // -50
		
		
		
//과제4> 반지름을 입력 받아서, 원의 넓이와 둘레를 구하여 출력하세요.
//		계속하려면 yes를 입력하고, no이면 중단합니다.	

		Scanner sc = new Scanner(System.in);
		float p = 3.14f;
		
		while(true) {
		System.out.println("반지름을 입력하세요.");
		float r = sc.nextInt();
		double area = p * r * Math.pow(r,2);
		double girth = 2 * p * r;
		System.out.println("원의 넓이는 " + area + "원의 둘레는" + girth +"입니다.");
		System.out.println("계속하려면 yes를, 중단하시려면 no를 입력하세요.");
		String ans = sc.next();
		if(ans.equals("yes")) {
			continue;
		}else if(ans.equals("no")) {
				System.out.println("프로그램을 종료합니다..");
				System.exit(0);
		}
		}
        
        //강사님 풀이
        		double radian;
		
		for(       ;   true  ;       ) {
			System.out.println("반지름을 입력해 주세요.");
			BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
			radian = Double.parseDouble((br2.readLine()));//		
		
			double d = radian * radian * 3.14159267;//원의 넓이
			double e = radian * 2 * 3.14159267;//원의 둘레
				System.out.println("원의 넓이 = " + d);
				System.out.println("원의 둘레 = " + e);

				System.out.println("계속하시겠습니까? (yes:계속, no:중단");
			String str = br2.readLine();

			if(!str.equals("yes")) {
				System.out.println("프로그램이 정상적으로 종료되었습니다.");
				break;
			}
		}
        
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

5일차 - 과제  (0) 2019.06.28
5일차  (0) 2019.06.28
4일차  (0) 2019.06.27
3일차 - 과제  (0) 2019.06.26
3일차  (0) 2019.06.26
And