본문 바로가기

Java

[Java] 피보나치 수열 이번에는 재귀 함수의 꽃인 피보나치 수열을 구현해보겠습니다. 피보나치 수열이란 1 + 1 + 2 + 3 + 5 ... 앞에 있는 두 수를 더한 값이 뒤의 값으로 오는 수열인데요. n이 순서라고하면 n = 1 과 2일 때는 1이 와야하기 떄문에 조건을 n = 1 or n = 2일 떄는 1이 반환되도록 해야합니다. n이 나머지 일때는 앞의 두 숫자를 더해주면 됩니다. public static int fibonnacci(int n) { return (n == 2 || n == 1? 1 : fibonnacci(n-1) + fibonnacci(n-2)); } 그대로 구현하면 이런식으로 코드가 나오게 됩니다.     1 , 1 , 2,  3, 5 , 8 ,13                             △ .. 더보기
[Java] Factorial Factorial도 등차수열 공식을 이용하면 쉽게 구할 수 있습니다. 더하기를 곱하기로만 바꾸면 됩니다. public static int add(int n) { return (n == 1 ? 1 : add(n-1) + n); } 기존에 있던 등차수열 코드를  public static int factorial(int n) { return (n == 1 ? 1: factorial(n-1) * n);} 곱하기로만 바꾸면 됩니다.  public static void main(String[] args) { int Inum = Input(); System.out.println(add(Inum)); System.out.println(factorial(Inum));} 출력을 해보면  4를 입력했을 때 24로 잘 구해지.. 더보기
[Java] 재귀적 호출(recursive call) - 등차수열 재귀적 호출(recursive call)이란  함수 속에서 자기 자신(이 함수)을 호출하는 것을 말합니다. 즉 함수를 반복해서 계속 실행하는 것입니다. 함수를 부르는 것은 느린 작업이기 떄문에 반복문인 for을 써서 구현할 수도 있지만 재귀적 호출을 이용해서 기억에서 테스트할 떄 이런 알고르짐을 응용해서 문제를 출제하는 경향이 있기 때문에 작성하는 법을 숙지해야 합니다.   예제로 등차 수열을 구현해보겠습니다. 사용자에게 숫자 하나를 입력받으면 해당 값까지 등차수열을 더한 값을 출력하는 함수입니다. import java.util.Scanner; public class FMain1 {   public static int Input() { System.out.println("값을 하나 입력하세요."); re.. 더보기
[Java] 함수의 구조 함수의 구조는 public static 함수명 B (C){ A }형태입니다. A는 return타입으로 해당 함수에서 작업한 결과를 호출한 쪽으로 주로 main 함수로 보낼 때 보낼 데이터의 자료형에 맞춰서 선언합니다. B는 함수명으로 기능이 뭔지 알아볼 수 있게 그리고 동사화 시켜서 작명하고 필요할 경우 낙타체와 뱀체를 써서 알맞게 작명합니다.\ C는 파라미터로 함수를 호출하는 쪽  주로 main함수에서 해당 함수 쪽으로 데이터를 보낼 떄 사용합니다. 형식은 (자료형 변수명, 자료형 변수명, ...) 형식입니다. 마지막으로 예제를 풀고 정리하겠습니다. 두 랜덤한 정수를 구해서 두 정수를 더한 값을 출력하는 함수를 만들어보겠습니다.  public static int randomInt() { return n.. 더보기
[Java] 홀 짝 게임 - 함수를 사용해서 만들기 이번 시간에는 저번에 만들었던 홀 짝 게임을 함수로 만들어 보도록 하겠습니다.   import java.util.Random;import java.util.Scanner; public class FMain4 {//동전 10개 짤짤이  public static int randomOccur() { Random r = new Random(); int rnum = r.nextInt(10)+1; return rnum;} public static String judgeOdd(int a) { String result = (a % 2 == 0) ? "짝" : "홀"; return result; } public static String answerInput() { System.out.println("짝이나 홀을 입력하세.. 더보기
[Java] 함수 열고 닫기 import java.util.Scanner;//ctrl + shift + /(numpad) : 함수 닫기//ctrl + shift + *(numpad) : 함수 열기public class FMain3 { public static void start_message() { System.out.println("비만도 검사를 시작하겠습니다."); } public static double height() { Scanner sc = new Scanner(System.in); System.out.println("키(cm)를 입력하세요 :"); double height = sc.nextDouble(); return height; } public static double weight() { Scanner sc = ne.. 더보기
[Java] 비만도 계산 프로그램 비만도 계산 프로그램을 함수를 사용해서 만들어 보려고 합니다. //키(cm), 몸무게(kg) 입력받음 //표준체중 = (키 - 100) * 0.9 // 비만도 = (실제체중 / 표준체중) * 100 // 비만도가 120 넘으면 '비만', 아니면 '안비만' 을 판정해서 출력  주어진 비만도 계산에 필요한 정보입니다. 주어진 정보를 함수로 구현만 하면 됩니다.  public static double standard_weight(double height){ return (height - 100) * 0.9; } public static double fat_rate(double weight, double standard_weight){ return (weight/standard_weight) * 100; } p.. 더보기
[Java] 함수의 종류 함수에는 4가지 종류가 있습니다. 1. 기능만 하는 함수 2. 기능 후 값을 반환하는 함수 3. 값을 파라미터로 받아서 기능을 하는 함수 4. 값을 파라미터로 받고 기능 후 값을 반환하는 함수 말이 비슷해서 이해하기 어려운 부분이 있는데요. 예제를 통해서 확인해보겠습니다. import java.util.Random; public class FMain2 {  public static void printRandom() { Random r = new Random(); System.out.println(r.nextInt(10)); } public static int occurRandom() { Random r = new Random(); return r.nextInt(10); } public static voi.. 더보기