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





}

13test02:阶乘的更多相关文章

  1. C语言 · 阶乘计算 · 基础练习

    问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表 ...

  2. Java 计算N阶乘末尾0的个数-LeetCode 172 Factorial Trailing Zeroes

    题目 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in ...

  3. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等

    1 .100以内的奇数和偶数 var js = ""; var os = ""; for(var i=1;i<101;i++) { if(i%2 == 0 ...

  4. [LeetCode] Factorial Trailing Zeroes 求阶乘末尾零的个数

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  5. 求单链表L各结点的阶乘之和(c语言)

    链表需要用到指针 阶乘需要用到递归 链表中的注意事项: 1.链表L是否等于NULL ----------是循环结束的条件 2.链表L->Data ---------取链表L中各个结点的值 3.L ...

  6. 洛谷 P2726 阶乘 Factorials Label:Water

    题目背景 N的阶乘写作N!,表示小于等于N的所有正整数的乘积. 题目描述 阶乘会变大得很快,如13!就必须用32位整数类型来存储,到了70!即使用浮点数也存不下了. 你的任务是找到阶乘最前面的非零位. ...

  7. js实现阶乘

    //while循环实现function calNum(n) { var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2 p ...

  8. 洛谷P1134 阶乘问题[数论]

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

  9. Random随机类(11选5彩票)BigInteger大数据类(华为面试题1000的阶乘)

    先上Java Web图 为了简化叙述,只写Java代码,然后控制台输出 使用[Random类]取得随机数 import java.util.Random; public class Fir { pub ...

随机推荐

  1. JS中二维数组的声明

    var myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一维长度为2 myarr[i]=new Array(); //再声明二维 for(v ...

  2. svn“Previous operation has not finished; run 'cleanup' if it was interrupted“ 或者不能cleanup,或者提示空目录 报错的解决方法

    参考了文档: http://blog.csdn.net/superch0054/article/details/38668017 今天碰到了个郁闷的问题,svn执行clean up命令时报错“Prev ...

  3. Nginx 默认配置解析

    # For more information on configuration, see: # * Official English Documentation: http://nginx.org/e ...

  4. 【Mysql优化】聚簇索引与非聚簇索引概念

    必须为主键字段创建一个索引,这个索引就是所谓的"主索引".主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE.  首先明白两句话: innod ...

  5. 分享三个USB抓包软件---Bus Hound,USBlyzer 和-USBTrace【转】

    转自:http://bbs.armfly.com/read.php?tid=15377 Bus Hound官方下载地址:http://perisoft.net/bushound/ Bus Hound ...

  6. 智联招聘的python岗位数据结巴分词(一)

    如何获取数据点击这里 下载之后的文件名为:all_results.csv 数据样式大概这样.然后下面我分析的是工作要求  也就是那边的绿框那一列. import csv import os impor ...

  7. SQLAlchemy ORM教程之二:Query

    from:https://www.jianshu.com/p/8d085e2f2657 这是继SQLAlchemy ORM教程之一:Create后的第二篇教程.在上一篇中我们主要是解决了如何配置ORM ...

  8. mapper配置文件中的动态SQL

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  9. onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)

    转自:https://www.cnblogs.com/white0710/p/7338456.html 1. onchange事件监听input值变化的使用方法: <input id=" ...

  10. 同源、同源策略、跨域问题、django解决方案

    什么是同源: URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源. 注意:假如你的网站ip是123.123.123.123,网站的域名是www.abc.com. ...