//假设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);





}

最新文章

  1. Linux 查找已安装软件的方法
  2. web service 学习
  3. codeforces 556B. Case of Fake Numbers 解题报告
  4. 【bzoj2179】FFT快速傅立叶 FFT模板
  5. RegEx正则表达式学习笔记
  6. linux 标准 GPIO 操作
  7. Objective-C /iphone开发基础:协议(protocol)
  8. Swap file &quot;.Podfile.swp&quot; already exists!
  9. 在Activiti中如何使用自定义的组织架构
  10. Hibernate【inverse和cascade属性】知识要点
  11. 思科模拟器-DHCP配置
  12. selenium与chrome浏览器及驱动的版本匹配
  13. SQLite事务、错误与自动回滚
  14. Sublime Text ——3200破解补丁
  15. wireshark实战之局域网抓包分析
  16. CMOS集成门电路
  17. Applese走方格-dfs
  18. Python 核心编程
  19. 关闭window端口445
  20. java 可变参数讲解

热门文章

  1. ecplise中修改reviewboard密码
  2. vsftpd主动模式和被动模式的区别
  3. 记另类Request method &#39;GET&#39; not supported
  4. Spring - IoC(8): 基于 Annotation 的配置
  5. Drupal7导入语言包
  6. CF502C The Phone Number
  7. 服务器应用程序不可用,由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件。
  8. Ajax的Result工具类
  9. hashlib,suprocess,configparser模块
  10. linux 系统函数之 (dirname, basename)【转】