Frog is cry
실습문제(Day11) 본문
회문수
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