15第十六周项目二——有些数的阶乘不算了

来源:互联网 发布:海南环岛高铁停运 知乎 编辑:程序博客网 时间:2024/04/30 01:56
/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:李晓凯
 * 完成日期:2015年 6 月 21 日
 * 版 本 号:v1.0
 *

 * 问题描述:求n!的函数,当用户的输入为负数,以及输入数太大时(例如大于12),使用异常处理机制予以拒绝,并给出恰当的提示。

* 输入描述:输入一个数n

 * 程序输出:输出n阶乘

 */

#include <iostream>#include <cmath>using namespace std;double fac(int m){    int sum=1;    if(m<0)        throw string("该数为负数,不能求阶乘!");    else if(m>12)        throw m;    else        while(m)        {            sum*=m;            m--;        }    return sum;}int main(){    double m;    try    {        cout<<"请输入一个要求阶乘的数"<<endl;        cin>>m;        cout<<m<<"的阶乘是:"<<fac(m)<<endl;    }    catch(int)    {        cout<<"结果太大,无法显示!"<<endl;    }    catch(string s)    {        cout<<s<<endl;    }    return 0;}double sqrtroot(double m){    if(m<0)        throw m;    return sqrt(m);}




0 0