《C++语言基础》实践参考——有些数的阶乘不算了

返回:贺老师课程教学链接 项目要求

【项目2-有些数的阶乘不算了】
求n!的函数,当用户的输入为负数,以及输入数太大时(例如大于12),使用异常处理机制予以拒绝,并给出恰当的提示。

[参考解答]

#include <iostream>
using namespace std;
int fac(int n)
{
    int result=1;
    if(n<0)
        throw string("Argument cannot be negative");
    else if(n>12)
        throw n;
    while(n)
    {
        result*=n;
        n--;
    }
    return result;
}

int main( )
{
    int n;
    try
    {
            cout<<"Please input a number n to xalculte n!:";
            cin>>n;
            cout<<n<<"!="<<fac(n)<<endl;
    }
    catch(int)
    {
        cout<<"Exception occurred: Too large!"<<endl;
    }
    catch(string s)
    {
        cout<<"Exception occurred: "<<s<<endl;
    }
    return 0;
}
时间: 2024-11-03 02:15:54

《C++语言基础》实践参考——有些数的阶乘不算了的相关文章

《C语言及程序设计》实践参考——三数最大值

返回:贺老师课程教学链接  C语言及程序设计初步  项目要求 [项目2-三数最大值]输入3个整数,输出其中的最大值.提示:求出两数的大值,再求这个大值与第三数间的大值,为三数最大值 [参考解答] #include <stdio.h> int main( ) { int a,b,c,max; printf("请输入3个整数:"); scanf("%d %d %d", &a, &b, &c); //先求出a和b的大值 if(a>

《C语言及程序设计》实践参考——完数

返回:贺老师课程教学链接  项目要求 [项目1-完数]一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数.(1)输入一个数n,判断n是否是完数[参考解答] 解1: #include <stdio.h> int main( ) { int n,s,m; printf("输入n:"); scanf("%d", &n); s=1; //s代表因子和.1是任何数的因

《C语言及程序设计》实践参考——阿姆斯特朗数

返回:贺老师课程教学链接  项目要求 [项目5-阿姆斯特朗数]如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数).如 407=4^3+0^3+7^3就是一个阿姆斯特朗数.试编程求1000以内的所有阿姆斯特朗数.[参考解答] #include <stdio.h> int main() { int i,m,k,n; for(n=1; n<=1000; ++n) { //计算n的各位数的立方和m k=n; m=0; while(k>0) { i=k%10; m

《C++语言基础》参考——学生可以相加吗?

返回:贺老师课程教学链接 谈及运算,我们总是习惯"数"的运算.而实际上,像时间之类的对象也是可以进行加减运算的.再进一步,我们的思维还可以拓展,运算加以加到任何事物上,只要我们可以为这些"运算"设计好意义. 例如:有班级类和学生类.两个学生相加,组成了一个由两个学生构成的班级:班级加学生,代表班级增加了一名新同学:学生乘学生,结果为这两个学生"结对子",可以做某些事(这个对子,需要定义成一个新的类):班级乘班级,是班级中的所有学生,两两结对子的所

《C++语言基础》参考——转换构造函数与类型转换函数

返回:贺老师课程教学链接 下面的程序,想在main函数中要完成实数加复数.复数加实数,不可以.编译下面的程序出现错误,就是因为没有提供对应类型数据的运算符重载函数. #include <iostream> using namespace std; class Complex { public: Complex():real(0), imag(0){} Complex(double r,double i):real(r), imag(i){} Complex operator+(const Co

《C++语言基础》实践项目——异常处理和命名空间

返回:贺老师课程教学链接 [项目1-平方根中的异常] 编写一个程序,求输入数的平方根.设置异常处理,当输入负数时采用异常处理机制给出提示. [参考解答] [项目2-有些数的阶乘不算了] 求n!的函数,当用户的输入为负数,以及输入数太大时(例如大于12),使用异常处理机制予以拒绝,并给出恰当的提示. [参考解答] [项目3-max带来的冲突] 分析下面程序出现的编译错误,给出解决的方案. #include<iostream> using namespace std; //定义函数模板 templ

《C++语言基础》网络课程主页

返回 贺利坚教学链接 本课程是在大学的实体课程基础上建设的一门网络课程,将我在教学中建设的资源,让更多的人能够用到. 课程链接是:点击打开链接 同步实体课在 点击打开链接,那里有92名同时学习的"同学",以及他们的博客链接. 坚持这门课程学习的学员,请在评论处留言,我将建立专门的链接,一起建设学习的氛围. 学员链接:(待加) 课程内容 一.从C到C++ 课时 视频 示例程序 自测 学习指导与实践 实践项目参考解答 1.1 由C语言到C++(暨本课介绍) 链接   1.2 C语言的基本成

Swift语言指南(一)--语言基础之常量和变量

原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合

C语言程序设计实践(OJ)-初识函数

2964: 查闰年 Description 大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿着这个问题来找你了– 闰年的条件是:能被4整除但不能被100整除,或能被400整除. #include <stdio.h> int leap_year(int n); /*声明判断闰年函数*/ int main() { int i; int cnt; /*计数,用于每行满8个换行*/ int m,