A function that calls itself.
void main() {
// Recursive function to calculate the factorial of a number
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// Calling the recursive function
print("Factorial of 5 is: ${factorial(5)}");
}
---------------------------------------------------------------------------------------------------------------------------------------
A recursive function is a function that calls itself to solve a problem, often by breaking it down into smaller subproblems.
void main() {
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
print(fibonacci(6)); // Output: 8
}
void main() {
int sumOfNaturalNumbers(int n) {
if (n <= 0) return 0;
return n + sumOfNaturalNumbers(n - 1);
}
print(sumOfNaturalNumbers(5)); // Output: 15
}
void main() {
int power(int base, int exponent) {
if (exponent == 0) return 1;
return base * power(base, exponent - 1);
}
print(power(2, 3)); // Output: 8
}
void main() {
String reverse(String str) {
if (str.isEmpty) return str;
return reverse(str.substring(1)) + str[0];
}
print(reverse("Dart")); // Output: traD
}
void main() {
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
print(gcd(48, 18)); // Output: 6
}
void main() {
String toBinary(int n) {
if (n <= 1) return n.toString();
return toBinary(n ~/ 2) + (n % 2).toString();
}
print(toBinary(10)); // Output: 1010
}
void main() {
int sumOfDigits(int n) {
if (n == 0) return 0;
return (n % 10) + sumOfDigits(n ~/ 10);
}
print(sumOfDigits(1234)); // Output: 10
}
void main() {
bool isPalindrome(String str) {
if (str.length <= 1) return true;
if (str[0] != str[str.length - 1]) return false;
return isPalindrome(str.substring(1, str.length - 1));
}
print(isPalindrome("racecar")); // Output: true
print(isPalindrome("hello")); // Output: false
}
void main() {
int findMin(List<int> numbers, int index) {
if (index == 0) return numbers[0];
return numbers[index] < findMin(numbers, index - 1)
? numbers[index]
: findMin(numbers, index - 1);
}
List<int> numbers = [3, 1, 4, 1, 5, 9];
print(findMin(numbers, numbers.length - 1)); // Output: 1
}