Home >Backend Development >C++ >In C++, find the factorial and suffix sum of an array in a given array

In C++, find the factorial and suffix sum of an array in a given array

PHPz
PHPzforward
2023-08-25 21:57:061190browse

In C++, find the factorial and suffix sum of an array in a given array

Discovering suffix factorials and corresponding suffix sums from arrays is entirely feasible when you understand the tools and techniques of the C programming language. That's exactly what we'll discuss in this article, including method syntax, algorithmic complexity, and efficient ways to unravel them. Additionally, this article shows two concrete code examples based on these methods. Finally, we summarize our insights into key takeaways.

grammar

To ensure a clear understanding of the upcoming code examples, please familiarize yourself with the syntax of the methods used before diving into their algorithms.

// Method syntax
<return_type> methodName(<parameters>) {
   // Method implementation
}

algorithm

Now, let us outline the stepwise algorithm to find suffix factorials and suffix sums for arrays −

  • Initialize an empty array to store suffix factorial.

  • In order to successfully complete this task. It is recommended to iterate the provided array in reverse order. In each iteration, the factorial calculation must be performed on the current element and the result is stored in an additional suffix factorial array.

  • Initialize the suffix sum array using the last element of the given array.

  • Traverse the suffix factorial array in reverse order.

  • For each element in the suffix factorial array, the corresponding suffix sum is calculated by adding it to the previous sum and stored in the suffix sum array.

Method 1: Iterative method

In this method we will use iterative method to find suffix factorial and suffix sum array.

The Chinese translation of

Example

is:

Example

#include <iostream>

// Function to calculate the factorial of a given number
int factorial(int n) {
   int fact = 1;
   for (int i = 2; i <= n; i++) {
      fact *= i;
   }
   return fact;
}

int main() {
   // Initialize the given array
   int arr[] = {1, 2, 3, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);

   // Create an array to store the suffix factorials
   int suffixFactorials[n];

   // Calculate the suffix factorials
   for (int i = n - 1; i >= 0; i--) {
      suffixFactorials[i] = factorial(arr[i]);
   }
   
   // Create an array to store the suffix sum
   int suffixSum[n];
   
   // Calculate the suffix sum
   suffixSum[n - 1] = arr[n - 1];
   for (int i = n - 2; i >= 0; i--) {
      suffixSum[i] = suffixSum[i + 1] + suffixFactorials[i];
   }
   
   // Output the suffix factorials and the suffix sum
   for (int i = 0; i < n; i++) {
      std::cout << "Suffix Factorial[" << i << "]: " << suffixFactorials[i] << std::endl;
      std::cout << "Suffix Sum[" << i << "]: " << suffixSum[i] << std::endl;
   }
   return 0;
}

Output

Suffix Factorial[0]: 1
Suffix Sum[0]: 38
Suffix Factorial[1]: 2
Suffix Sum[1]: 37
Suffix Factorial[2]: 6
Suffix Sum[2]: 35
Suffix Factorial[3]: 24
Suffix Sum[3]: 29
Suffix Factorial[4]: 120
Suffix Sum[4]: 5

Explanation

is translated as:

Explanation

The iterative method of finding suffix factorial and suffix sum arrays involves traversing the given array in reverse order. For each element in the array, the factorial is calculated using an iterative method and stored in a suffix factorial array. Creates and initializes suffix and array simultaneously, with the initial value being the last element of the given array. Implementing a simple yet effective strategy can solve this problem easily and efficiently at the same time. The first step is to iterate over the suffix factorial array, but keeping it in reverse order instead of forward order. Using this traversal allows us to easily calculate each suffix sum by adding it to its previous calculation and encoding it into our target output variable.

Method 2: Recursive method

Our strategy involves utilizing the concept of Hamming distance to solve the problem posed.

The Chinese translation of

Example

is:

Example

#include <iostream>

// Function to calculate the factorial of a given number recursively
int factorial(int n) {
   if (n == 0 || n == 1) {
      return 1;
   }
   return n * factorial(n - 1);
}

int main() {
   // Initialize the given array
   int arr[] = {1, 2, 3, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);

   // Create an array to store the suffix factorials
   int suffixFactorials[n];

   // Calculate the suffix factorials
   for (int i = n - 1; i >= 0; i--) {
      suffixFactorials[i] = factorial(arr[i]);
   }

   // Create an array to store the suffix sum
   int suffixSum[n];

   // Calculate the suffix sum
   suffixSum[n - 1] = arr[n - 1];
   for (int i = n - 2; i >= 0; i--) {
      suffixSum[i] = suffixSum[i + 1] + suffixFactorials[i];
   }

   // Output the suffix factorials and the suffix sum
   for (int i = 0; i < n; i++) {
      std::cout << "Suffix Factorial[" << i << "]: " << suffixFactorials[i] << std::endl;
      std::cout << "Suffix Sum[" << i << "]: " << suffixSum[i] << std::endl;
   }
   return 0;
}

Output

Suffix Factorial[0]: 1
Suffix Sum[0]: 38
Suffix Factorial[1]: 2
Suffix Sum[1]: 37
Suffix Factorial[2]: 6
Suffix Sum[2]: 35
Suffix Factorial[3]: 24
Suffix Sum[3]: 29
Suffix Factorial[4]: 120
Suffix Sum[4]: 5

Explanation

is translated as:

Explanation

To obtain the suffix factorial and summed arrays, a recursive strategy is used. Iterating backwards starting from the end of the given array, the recursive function calculates its factorial. These values ​​are then stored in the associated suffix factorial array. The next step is to initialize a new suffix sum array by assigning the last element of the input collection to it. Tabulating the summation calculation into this newly generated array while iterating the calculations over the factorial set we previously constructed in reverse order; by effectively using recursive iteration, produces the results we seek.

in conclusion

In summary, we use the C programming language to examine the concept of identifying suffix factorials in an input array and matching suffix sum arrays. Our analysis yielded two different approaches: iterative and recursive. In addition, we have included accurate code examples to effectively demonstrate the capabilities of each method. By understanding and implementing these methods, you can efficiently solve similar problems involving computing suffix factorials and suffix sums with arrays. Keep exploring and trying different algorithms to improve your programming skills.

The above is the detailed content of In C++, find the factorial and suffix sum of an array in a given array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete