Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
import java.util.Arrays; public class VarargsAndRecursion { // Varargs: accept any number of ints static int sum(int... numbers) { int total = 0; for (int n : numbers) total += n; return total; } // Varargs mixed with regular parameters static void log(String level, String... messages) { for (String msg : messages) { System.out.printf("[%s] %s%n", level, msg); } } // Recursion: factorial static long factorial(int n) { if (n <= 1) return 1; // base case return n * factorial(n - 1); // recursive case } // Recursion: Fibonacci (with memoisation to avoid exponential time) private static long[] memo = new long[50]; static long fib(int n) { if (n <= 1) return n; if (memo[n] != 0) return memo[n]; memo[n] = fib(n - 1) + fib(n - 2); return memo[n]; } // Recursion: binary search static int binarySearch(int[] arr, int target, int lo, int hi) { if (lo > hi) return -1; int mid = lo + (hi - lo) / 2; if (arr[mid] == target) return mid; if (arr[mid] < target) return binarySearch(arr, target, mid + 1, hi); return binarySearch(arr, target, lo, mid - 1); } public static void main(String[] args) { System.out.println(sum()); // 0 System.out.println(sum(1, 2, 3)); // 6 System.out.println(sum(10, 20, 30, 40)); // 100 log("INFO", "Server started", "Listening on port 8080"); log("ERROR", "Database connection failed"); for (int i = 0; i <= 10; i++) { System.out.printf("%d! = %d%n", i, factorial(i)); } System.out.print("Fibonacci: "); for (int i = 0; i < 10; i++) System.out.print(fib(i) + " "); System.out.println(); int[] sorted = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91}; int idx = binarySearch(sorted, 23, 0, sorted.length - 1); System.out.println("Found 23 at index: " + idx); } }
Result
Open