階乘的概念,很簡單。
一種數學計算公式,用比給定數值(必大于等于零)小的自然數依次相乘直到最終因數為給定數值為止。
那么,如何用c++寫呢?
int?double?還是long? 其實都可以,只不過是數值范圍的問題!
#include<iostream>#include<iomanip>using namespace std;void factorial(int n){ long long sum = 1; for(int i=1;i<=n;i++){ sum*=i; } cout<<setiosflags(ios::fixed)<<n<<"! is "<<sum<<endl;}int main(){ int n; while(cin>>n){ for(int i=0;i<=n;i++){ factorial(i); } } return 0;}上邊的代碼,我用的是long long ,n<=20!對于求階乘的函數,也可以用遞歸
#include<iostream>using namespace std;long long factorial(int n){ if(n==0) return 1; else if(n==1) return 1; else return n*factorial(n-1);}int main(){ int n; while(cin>>n){ cout<<factorial(n)<<endl; } return 0;}
新聞熱點
疑難解答