JavaChallenge - 11

CYSSSSSSSSS·2024년 4월 26일

자바 챌린지

목록 보기
11/11

Java

recursion

백준 27433

  • 문제를 풀때 20까지의수를 받는데 20! int형의 범위를 넘어간다
  • 따라서 Long형으로 변수를 잡아야 문제를 풀수 있다.
import java.util.Scanner;

public class Main {
    static long answer = 1;
    static long n;

    static void input(){
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextLong();
    }
    static long rec_func(int k){
        if(k == n+1){
            return answer;
        }else if(n == 0){
            return 1;
        } else{
            answer = answer * k;
            return rec_func(k+1);
        }
    }

    public static void main(String[] args) {
        input();
        System.out.println(rec_func(1));
    }
}

백준 10870

package 재귀;

import java.util.Scanner;

public class BOJ10870 {
    static int n;
    static void input(){
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
    }

    static int fibonach(int n){
        if(n == 0){
            return 0;
        }else if(n == 1){
            return 1;
        }else{
            return fibonach(n-1) + fibonach(n-2);
        }
    }

    public static void main(String[] args) {
        input();
        System.out.println(fibonach(n));
    }
}

백준 25501

package 재귀;

import java.util.Scanner;

public class BOJ25501 {
    static StringBuilder sb = new StringBuilder();
    static int answer;
    static int count;
    static String token;
    static int n;

    static  int recursion(String s , int l , int r){
        if(l >= r){
            return 1;
        }else if(s.charAt(l) != s.charAt(r)){
            return 0;
        }else{
            count++;
            return recursion(s , l+1 , r-1);
        }
    }
    static int isPalindrome(String s){
        return recursion(s , 0 , s.length() -1);
    }
    static void input(){
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        for(int i =0; i<n; i++){
            token = scanner.next();
            count = 1;
            answer = isPalindrome(token);
            sb.append(answer).append(" ").append(count);
            sb.append("\n");
        }
    }

    public static void main(String[] args) {
        input();
        System.out.println(sb);
    }
}
profile
개발자 되고 싶어요

0개의 댓글