20200802--利用公式 e=1+1/1!+1/2!+...+1/n!,求e的值, 要求保留小數點后10位(奧賽一本通 p67 2)


//第一種解法,單for,關鍵是t*=i這行

# include <bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  double e,s;
  e=1.0;
  s=0.0;
  long long t=1;
  scanf("%d",&n);
for(int i=1;i<=n;i++)
  {t*=i;//關鍵步驟,它存儲了以前的結果
  e+=1.0/t;
  }
printf("%.10lf",e);
return 0;
}

 

//第二種解法,兩層for循環,內for循環完后,t=1

# include <bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  double e,s;
  e=1.0;
  s=0.0;
  long long t=1;
  scanf("%d",&n);
  for(int i=1;i<=n;i++){
    for(int ls=1;ls<=i;ls++){
      t*=ls;
    }
  e+=1.0/t;
  t=1;
  }
  printf("%.10lf",e);
  return 0;
}


免責聲明!

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



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