zoukankan      html  css  js  c++  java
  • 13test02:阶乘

    //假设32位int型变量y是表示最大人数的x的阶乘,即y=x!,当x最大值取什么时,y取最大值
    //,且乘法不溢出。
    #include<iostream>
    using namespace std;
    unsigned int Fun(unsigned int);
    int main()
    {
    unsigned int max_person_num=0;
    max_person_num=~max_person_num;
    cout<<max_person_num<<endl;
    for(unsigned int i=2;Fun(i)<=max_person_num&&Fun(i)>Fun(i-1);i++)
    //C++中数据溢出时类似汽车里程表,达到最大值是立即归零.
    //即如果int型最大值为10,int i=10;则i+=1之后,i=0而非11.所以在for循环的测试条件中
    //加入了Fun(i)>Fun(i-1)用来测试返回值是否有溢出。因为整数的阶乘是不断增大的,所以
    //一旦溢出则其阶乘比小于前一个数的阶乘.
    cout<<"i="<<i<<"  y="<<Fun(i)<<endl;
    cout<<"x最大为:"<<i-1<<"  y最大为:"<<Fun(i-1)<<endl;
    return 1;
    }
    unsigned int Fun(unsigned int x)//x阶乘函数.
    {
    if(1==x) return 1;
    else return x*Fun(x-1);


    }
  • 相关阅读:
    JAVA程序员_常用英语
    Java基础常见英语词汇
    oracle sqlplus常用命令大全
    Ognl_JSTL_学习笔记
    DBA操作
    ssh面试题总结
    数据库面试笔试题集
    基本select 语句总结
    JSP面试知识
    featureCounts 软件说明
  • 原文地址:https://www.cnblogs.com/lz3018/p/4579824.html
Copyright © 2011-2022 走看看