首頁  >  文章  >  後端開發  >  在C++中,找到給定數組中後綴的階乘和後綴和數組

在C++中,找到給定數組中後綴的階乘和後綴和數組

PHPz
PHPz轉載
2023-08-25 21:57:061099瀏覽

在C++中,找到給定數組中後綴的階乘和後綴和數組

當您了解C 程式語言的工具和技術時,從陣列中發現後綴階乘和對應的後綴和陣列是完全可行的。這正是我們將在本文中討論的內容,包括方法語法、演算法複雜性以及解開它們的有效方法。此外,本文也展示了基於這些方法的兩個具體程式碼範例。最後,我們將總結我們對關鍵要點的見解。

文法

為了確保對即將出現的程式碼範例有清晰的理解,請在深入了解其演算法之前,先熟悉一下所使用的方法的語法。

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

演算法

現在,讓我們概述逐步演算法,以找到後綴階乘和後綴和陣列 −

  • 初始化一個空數組來儲存後綴階乘。

  • 為了成功完成這個任務。建議以相反的順序迭代提供的數組。在每次迭代中,必須對目前元素進行階乘計算,並將結果儲存在額外的後綴階乘數組中。

  • 使用給定陣列的最後一個元素初始化後綴和陣列。

  • 以相反的順序遍歷後綴階乘數組。

  • 對於後綴階乘數組中的每個元素,透過將其與前一個和相加來計算相應的後綴和,並將其儲存在後綴和數組中。

方法1:迭代方法

在這個方法中,我們將使用迭代方法來找到後綴階乘和後綴和陣列。

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;
}

輸出

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

的翻譯為:

解釋

尋找後綴階乘和後綴和陣列的迭代方法涉及以逆序遍歷給定數組。對於數組中的每個元素,使用迭代方法計算階乘,並將其儲存在後綴階乘數組中。同時建立並初始化後綴和數組,初始值為給定數組的最後一個元素。實施一個簡單而有效的策略可以同時輕鬆且有效率地解決這個問題。第一步是在後綴階乘數組上進行迭代,但是保持其逆序而不是正序。使用這種遍歷方式使我們能夠輕鬆計算每個後綴總和,只需將其與其前一個計算結果相加,然後將其編碼到我們的目標輸出變數中。

方法2:遞迴方法

我們的策略涉及利用漢明距離概念來解決所提出的問題。

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;
}

輸出

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

的翻譯為:

解釋

為了得到後綴階乘和求和數組,使用了遞歸策略。從給定數組的末端開始反向迭代,遞歸函數計算其階乘。然後這些值儲存在相關的後綴階乘數組中。下一步是透過將輸入集合的最後一個元素賦值給它來初始化一個新的後綴求和陣列。在以逆序方式迭代我們先前建構的階乘集合的計算的過程中,將求和計算表格化到這個新生成的數組中;透過有效地使用遞歸迭代,從而產生我們所尋求的結果。

結論

總之,我們使用C 程式語言來檢查識別輸入數組中的後綴階乘和匹配的後綴和數組的概念。我們的分析得出了兩種不同的方法:迭代和遞歸。此外,我們還包含了準確的程式碼範例來有效地展示每種方法的功能。透過理解和實施這些方法,您可以有效地解決涉及計算後綴階乘和後綴和陣列的類似問題。繼續探索和嘗試不同的演算法,以提升您的程式設計技能。

以上是在C++中,找到給定數組中後綴的階乘和後綴和數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除