관리 메뉴

Frog is cry

실습문제(Day11) 본문

JAVA/국비수업

실습문제(Day11)

Frog is cry 2020. 7. 14. 17:20

회문수

package day12;

import java.util.Scanner;

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

		Scanner scanner = new Scanner(System.in); // 여기서 12321 을 입력했다고 가정하고 코드를 진행합니다.

		System.out.print("정수를 입력하세요.>");

		// String input = scanner.nextLine(); // A : 아래와 같이 변경함

		// int number = Integer.parseInt(input); // A : 아래와 같이 변경함

		int number = scanner.nextInt(); // A : 부분을 변경함

		int tmp = number;

		int result = 0; // 입력받은 number의 순서를 거꾸로 변환해서 저장할 변수

		while (tmp != 0) { // 맨처음 tmp는 12321이 저장됨, 두번째 tmp는 1232가지고 종속으로 내려감,

			// 세번째 tmp는 123가지고 종속으로 내려감, 네번째 tmp는 12가지고 종속으로 내려감,

			// 다섯번째 tmp는 1가지고 종속으로 내려감,

			result = result * 10 + tmp % 10; // 첫번째 : 기존 결과에 10을 곱해서 덧셈함

			System.out.println("종속문장에서 result : " + result + " 입니다.");

			// 첫번째: 0 * 10 + 12321 % 10 수행 -> 0 + 1 -> 1이 result에 저장됨

			// 두번째: 1 * 10 + 1232 % 10 수행 -> 10 + 2 -> 12 이 result에 저장됨

			// 세번째: 12 * 10 + 123 % 10 수행 -> 120 + 3 -> 123 이 result에 저장됨

			// 세번째: 123 * 10 + 12 % 10 수행 -> 1230 + 2 -> 1232 이 result에 저장됨

			// 다섯번째: 1232 * 10 + 1 % 10 수행 -> 12320 + 1 -> 12321 이 result에 저장됨

			tmp /= 10;

			System.out.println("종속문장에서 tmp : " + tmp + " 입니다.");

			// 첫번째: tmp = 12321 / 10 이므로 tmp에는 1232이 저장됨

			// 두번째: tmp = 1232 / 10 이므로 tmp에는 123이 저장됨

			// 세번째: tmp = 123 / 10 이므로 tmp에는 12이 저장됨

			// 네번째: tmp = 12 / 10 이므로 tmp에는 1이 저장됨

			// 다섯번째: tmp = 1 / 10 이므로 tmp에는 0이 저장됨

		}

		if (number == result)

			System.out.println(number + "는 회문수 입니다.");

		else

			System.out.println(number + "는 회문수가 아닙니다.");

	}

}

 

피보나치 수열

package day12;

import java.util.Scanner;

public class Day12_Ex02 {
	public static void main(String[] args) {
//실습-3-해답: 피보나치 수열을 반복문으로 구현하는 프로그램
		
// Fibonnaci 수열에서 처음(왼쪽)부터 첫번째, 두번째 숫자를 
// 각각 1, 1로 지정한다.(규칙임)
		int num1 = 1; // 첫번째 수
		int num2 = 1; // 두번째 수
		int num3 = 0; // 세번째 수 : 자신보다 앞쪽(왼쪽)에 두 수의 합을 저장할 것임.
		System.out.print(num1+","+num2);
		for (int i = 0 ; i < 8 ; i++ ) {
			//반복설계구문은 단순하게 2+8 을 위해 8회 반복의 역할 만을 수행한다.
			// 왜 2+8입니까 ? 2는 피보나치 수열의 첫번 째 두번 째를 1,1, 이라고 규정했기 때문임.
			num3 = num1 + num2; 
			//세번째 수는 첫번째 수와 두번째 수를 
			// 더해서 얻는다.
			System.out.print(","+num3); // 세 번째 수를 출력
			num1 = num2; // 두 번째 수를 첫 번째 수로 재지정한다.
			num2 = num3; // 세 번째 수를 두 번째 수로 재지정한다..
		}
	}
}

 

반복구문을 표로 그리기

반복문의 종속문장에서 사용한 변수들의 변화를 정리하세요
반복설계구문변수 i num1 num2 num3
0 1 2 2
1 2 3 3
2 3 5 5
3 5 8 8
4 8 13 13
5 13 21 21
6 21 34 34
7 34 55 55

'JAVA > 국비수업' 카테고리의 다른 글

문자열 주소비교(Day12)  (0) 2020.07.15
스캐너(Day12)  (0) 2020.07.15
do While문(Day10)  (0) 2020.07.14
while문(Day10)  (0) 2020.07.14
시험(Day09)  (0) 2020.07.14
Comments