Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
1.5 kB
0
Indexable
Never
#include <bits/stdc++.h>
using namespace std;

// Recursive algorithms
int sum_Recursive(int n){
    if(n==1){
        return 1;
    }
    else{
        return n + sum_Recursive(n-1);
    }
}

int combinationRecursive(int n, int k) {
    if (k == 0 || k == n) {
        return 1;
    }
    return combinationRecursive(n - 1, k - 1) + combinationRecursive(n - 1, k);
}

int gcdRecursive(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcdRecursive(b, a % b);
}

int findMin(int arr[], int left, int right) {
    if (left == right) {
        // If there's only one element, it is the minimal element
        return arr[left];
    }
    int middle = (left + right) / 2;
    // Recursively find the minimal elements in the two sub-series
    int min1 = findMin(arr, left, middle);
    int min2 = findMin(arr, middle + 1, right);
    // Compare min1 and min2 to find the minimal element
    return (min1 < min2) ? min1 : min2;
}

// Sum of natural numbers with non-recursive algorithms
int sum_Nonrecursive(int n){
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}



int main() {
    int n;
    cout << "Enter a positive integer n: ";
    cin >> n;
    cout << sum_Recursive(n) <<endl;
    cout << sum_Nonrecursive(n)<<endl;

    int arr[n];
    cout << "Enter the elements: ";
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    int minimalElement = findMin(arr, 0, n - 1);
    cout << "The minimal element in the series is: " << minimalElement << endl;


    return 0;
}