/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘佳琦
* 完成日期:2015年 6 月 20日
* 版 本 号:v1.0
*
* 问题描述:求n!的函数,当用户的输入为负数,以及输入数太大时(例如大于12),使用异常处理机制予以拒绝,并给出恰当的提示。
* 输入描述:
* 程序输出:
*/
#include<iostream>
using namespace std;
int fun(int x);
int main()
{
int n;
try
{
cout<<"请输入一个数:"<<endl;
cin>>n;
cout<<n<<"!"<<fun(n)<<endl;
}
catch(int)
{
cout<<"输入的数字为负数或太大 请检查后输入"<<endl<<endl;
}
return 0;
}
int fun(int x)
{
int n=x;
if(x<0||x>12)
throw x;
while(x--&&x!=0)
{
n*=x;
}
return n;
}
运行结果:
学习心得:
本来想用递归,后面发现检查的时候,判断是否抛出的时候,到最后总会抛出这个数...就改成最简单版的了