13test02:阶乘
来源:互联网 发布:淘宝推广招聘要求 编辑:程序博客网 时间:2024/06/08 00:10
//假设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);
}
//,且乘法不溢出。
#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);
}
0 0
- 13test02:阶乘
- 13test02:信用卡校验
- test02
- test02
- test02
- day1 test02
- day2 test02
- day3 test02
- day4 test02
- day5 test02
- day6 test02
- day7 test02
- test02-20160911
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 阶乘
- 浮点数表示和转换
- 13南理工test01:进制转化
- 《深度探索C++对象模型》读书笔记——关于对象【for_wind】
- 设置JDK环境变量
- ajaxform提交
- 13test02:阶乘
- 细读红楼梦
- 为什么内存优化加速软件百害而无一利
- linux环境jdk安装及配置
- CURL版递归爬虫下载软件脚本
- Java学习-win7系统下两个tomcat服务器配置(2)
- 第三周作业——冒泡排序和归并排序
- 13test02:信用卡校验
- 【数据结构】线性表的单链表存储结构表示和实现