13test02:阶乘
2024-09-22 04:08:03
//假设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);
}
最新文章
- Linux 查找已安装软件的方法
- web service 学习
- codeforces 556B. Case of Fake Numbers 解题报告
- 【bzoj2179】FFT快速傅立叶 FFT模板
- RegEx正则表达式学习笔记
- linux 标准 GPIO 操作
- Objective-C /iphone开发基础:协议(protocol)
- Swap file ";.Podfile.swp"; already exists!
- 在Activiti中如何使用自定义的组织架构
- Hibernate【inverse和cascade属性】知识要点
- 思科模拟器-DHCP配置
- selenium与chrome浏览器及驱动的版本匹配
- SQLite事务、错误与自动回滚
- Sublime Text ——3200破解补丁
- wireshark实战之局域网抓包分析
- CMOS集成门电路
- Applese走方格-dfs
- Python 核心编程
- 关闭window端口445
- java 可变参数讲解
热门文章
- ecplise中修改reviewboard密码
- vsftpd主动模式和被动模式的区别
- 记另类Request method &#39;GET&#39; not supported
- Spring - IoC(8): 基于 Annotation 的配置
- Drupal7导入语言包
- CF502C The Phone Number
- 服务器应用程序不可用,由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件。
- Ajax的Result工具类
- hashlib,suprocess,configparser模块
- linux 系统函数之 (dirname, basename)【转】