首页 > 学院 > 开发设计 > 正文

从零开始学算法03--阶乘

2019-11-10 19:32:07
字体:
来源:转载
供稿:网友

阶乘的概念,很简单。

一种数学计算公式,用比给定数值(必大于等于零)小的自然数依次相乘直到最终因数为给定数值为止。

那么,如何用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;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表