阶乘的概念,很简单。
一种数学计算公式,用比给定数值(必大于等于零)小的自然数依次相乘直到最终因数为给定数值为止。
那么,如何用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;}
新闻热点
疑难解答