7-13 求階乘序列前N項和


本題要求編寫程序,計算序列 1!+2!+3!+⋯ 的前N項之和。

輸入格式: 輸入在一行中給出一個不超過12的正整數N。

輸出格式: 在一行中輸出整數結果。

輸入樣例: 5

輸出樣例: 153

代碼:

#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int dfs(int a)
{
int x=0;
if(a==0||a==1)
  return 1;
else x=a*dfs(a-1);/
 return x;
}
int main(int argc, char** argv) {
int a,sum=0;
cin>>a;
for(int i=1;i<=a;i++)
  sum+=dfs(i);
cout<<sum;
return 0;
}

//有兩個問題

  1、關於遞歸時傳入參數:不能改變最初傳入參數的值,

  例如、a--

  因為一個函數里面的參數一旦改變,會使整個函數的計算過程中a的值會隨着改變,導致結果不對

  2、我最初的思路是定義一個全局的靜態變量,來記錄每一次遞歸所產生的結果,然后實現累加

  即x+=a*dfs(a),其中a是全局變量,但是遞歸的結果多算了一點,沒有完善好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM