C랑 문법은 다르지만 과제는 크게 다르지 않아서 편하게 하는 중.
1. 피보나치 함수
원하는 숫자를 입력받아 피보나치 숫자를 출력하는 함수이다.
피보나치 제발 그만 하고 싶다.
툭 하면 피보나치. 새로움을 보였으면.
|
package practice2; import java.util.Scanner; public class fibo { //피보나치 함수: 양수면 피보나치 수를 return, 0이거나 음수면 -1을 return static int fibonacci(int n) { int f1 = 0; int f0 = 1; if (n <= 0) return -1; else { for (int i = 0; i < n; i++) { int temp = f1; f1 = f0; f0 = temp + f0; } return f1; } } public static void main(String args[]) { Scanner scin = new Scanner(System.in); System.out.print("Enter n : "); int n = scin.nextInt(); int result = fibonacci(n); //출력 if (result == -1) System.out.println("Should enter a positive number"); else System.out.printf("fibonacci(%d) = %d", n, result); scin.close(); } }C |
2. 배열 반복 일치 검사
B의 배열이 A의 배열의 반복인지 알아보는 함수이다.
B의 길이는 A의 길이의 배수가 되어야한다.
|
package practice2; public class P2_2 {
static boolean checkRepetition(int[] a, int[] b) { int a_n = a.length; int b_n = b.length; if(b_n%a_n != 0) return false; else { for(int i=0;i<a_n;i++) { for(int j=i;j<b_n;j+=a_n) { if (a[i]==b[j]) continue; else return false; } } return true; } } public static void main(String[] args) { int[] x1 = { 2, 1 }; int[] x2 = { 2, 1, 2, 1, 2, 1 }; System.out.println("x1 and x2 : " + checkRepetition(x1, x2));
int[] x3 = { 1, 2, 3 }; int[] x4 = { 1, 2, 3, 1, 2, 3, 1 }; System.out.println("x3 and x4 : " + checkRepetition(x3, x4));
int[] x5 = { 5 }; int[] x6 = { 5, 5, 5, 5, 5, 5 }; System.out.println("x5 and x6 : " + checkRepetition(x5, x6));
int[] x7 = { 1, 3, 5, 7, 9 }; int[] x8 = { 1, 3, 5, 7, 9 }; System.out.println("x7 and x8 : " + checkRepetition(x7, x8));
int[] x9 = { 2, 3 }; int[] x10 = { 2, 3, 4, 2, 3 }; System.out.println("x9 and x10 : " + checkRepetition(x9, x10)); } } |
3. 사각형의 둘레와 넓이 구하기
|
package practice2; class Rectangle { int width; int height; Rectangle() { } Rectangle(int w, int h) { width = w; height = h; } // main 메소드를 보고 다음의 Rectangle 클래스의 메소드들을 완성한다. void setWidthHeight(int w, int h) { this.width = w; this.height = h; } void printInfo() { System.out.println("width : " + width + ", height : " + height); } int getArea() { return width * height; } int getPerimeter() { return (width + height) * 2; } void incWidth(int n) { this.width += n; } void incHeight(int n) { this.height += n; } } public class P2_3 { public static void main(String[] args) { Rectangle r1 = new Rectangle(5, 6); Rectangle r2 = new Rectangle(); r2.setWidthHeight(7, 9); // 인스턴스 r2의 필드 width를 7로, height를 9로 저장한다. r1.printInfo(); // 인스턴스 r1의 width, height를 출력한다. System.out.println("r1의 넓이 : " + r1.getArea() + ", r1의 둘레 :" + r1.getPerimeter()); r2.incWidth(3); // r2의 width를 3 증가시킨다. 즉, 10으로만든다. r2.incHeight(10); // r2의 height를 10만큼 증가시킨다. 즉, 19로 만든다. r2.printInfo(); // 인스턴스 r2의 width, height를 출력한다. System.out.println("r2의 넓이 : " + r2.getArea() + ", r2의 둘레 : " + r2.getPerimeter()); } } |
'Algorithm > JAVA' 카테고리의 다른 글
[JAVA] 두 정수 사이의 합 (0) | 2020.05.10 |
---|---|
[JAVA] 입력받은 문장의 단어들을 짝수번째는 대문자로, 홀수번째는 소문자로 바꾸기(이상한 문자 만들기) (0) | 2020.05.10 |
[자바/JAVA] 배열 - 짝수 홀수 재배열(rearrange) (0) | 2020.05.02 |
[자바/JAVA] 원의 넓이와 둘레 구하기, 두 점 사이의 거리 구하기 (0) | 2020.05.01 |
[자바/JAVA] 실습. 약수와 약수의 개수 구하기, 세로 가로 길이 받아서 속이 빈 사각형 만들기 (0) | 2020.04.22 |