6-10

6-10 阶乘计算升级版(20 分)

本题要求实现一个打印非负整数阶乘的函数。

函数接口定义:

void Print_Factorial ( const int N );

其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。

裁判测试程序样例:

#include <stdio.h>void Print_Factorial ( const int N );int main()
{int N;scanf("%d", &N);Print_Factorial(N);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

15

输出样例:

1307674368000

AC代码

void Print_Factorial ( const int N ){long long s=1;if (N==0)printf("%lld",1);//与%d,变量值1有区别?? if(N>0){/*  for(int i=1;i<=N;i++){s*=i;   }printf("%lld",s);//坑啊,好在我已经过了30天了 ,1000的阶乘,果然数据大了就不一样啊*/ int result[10000]={0};//10000个0 int result_size=1;//实时更新result的实际位数int carryBit = 0; //进位的值    result[0]=1;//初始结果为1    for (int out = 2; out <= N; out++) {  for (int in = 0; in < result_size; in++) {  int temp = result[in] * out + carryBit;//  result[in]=temp % 10;  carryBit = temp / 10;  }  while (carryBit != 0) { //引入新进结果位 result[result_size]=carryBit % 10;  result_size++;carryBit = carryBit / 10;  // carryBit =0;循环之深意啊 }  }//cout<<value<<"的阶乘结果为:"<<endl;for(int i=result_size-1;i>=0;i--)  {  //cout<<result[i];printf("%d", result[i]);}  }if(N<0)printf("Invalid input");
}

相关思考

主要问题在于1000的阶乘数字非常大。

代码来源为转载

(华为面试一)1000的阶乘如何实现?_高明军_新浪博客 http://blog.sina.com.cn/s/blog_4baa2c250100ijpn.html

转载于:https://www.cnblogs.com/lingr7/p/9276002.html

6-10 阶乘计算升级版(20 分)相关推荐

  1. 阶乘计算升级版 (20分)_求1!+2!+3!+...+20!的和

    题目:求1!+2!+3!+...+20!的和 阶乘定义: n! = 1 * 2 * 3 * - * n 难度 简单 参考答案 核心是阶乘的计算. 20!的阶乘的位数的估算非常重要,导致在定义阶乘函数的 ...

  2. #035 大数阶乘 PTA题目6-10 阶乘计算升级版 (20 分)

    实际题目 本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负 ...

  3. 基础编程题目集 6-10 阶乘计算升级版 (20 分)

    问题描述: 解题思路: 由于N最大为1000,int的范围最大为10的9次方,long long int的范围最大为10的18次方,使用斯特林公式计算可知,n为12时,结果的位数已经为9,故N取100 ...

  4. 6-10 阶乘计算升级版 (20 分)

    本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负整数,则该 ...

  5. C++学习之路 | PTA乙级—— 1063 计算谱半径 (20 分)(精简)

    1063 计算谱半径 (20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a ​1 ​​ +b ​1 ​​ i,⋯ ...

  6. 用python做一个输入半径值计算圆的面积保留两位小数_1063 计算谱半径 (20分)

    1063 计算谱半径 (20分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,an+bni },它们的 ...

  7. 时间格式的转换 例如:(2021-05-10 14:20:43) 转为( 2021年5月10日 14时20分43秒)

    console.log(name('2021-02-10 14:20:43'));function name(date) {const arr = date.split(/[-: ]/)return ...

  8. 7-5 计算个人所得税 (20分)

    假设个人所得税为:税率×(工资−1600).请编写程序计算应缴的所得税,其中税率定义为: 当工资不超过1600时,税率为0: 当工资在区间(1600, 2500]时,税率为5%: 当工资在区间(250 ...

  9. 【简便代码】1063 计算谱半径 (20分)_10行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的 ...

最新文章

  1. openstack运维实战系列(十)之nova指定compute节点和IP地址
  2. Python 循环中的陷阱(转载)
  3. 【算法与数据结构】最大子序列和问题
  4. C#设计模式学习笔记-单例模式
  5. Firefly支持AI引擎Tengine,性能提升,轻松搭建AI计算框架
  6. PHP+Mysql高仿百度知道签到源码演示与下载
  7. c语言判断字符串镜像,leetcode392(判断子序列)--C语言实现
  8. 电机与拖动,直流他励电动机的特性测试实验报告,江南大学自动化
  9. wget在线扒站程序php源码
  10. textbox的textmode取为multiline多行时,其maxlength不起作用
  11. 美团将主办 ICDAR2019「中文门脸招牌文字识别」比赛,并公开首个真实场景招牌图像数据集...
  12. 再见 2017 你好 2018 ,程序员们的精彩年度总结
  13. 微信付费阅读支付宝可用,iOS抽成30%;苹果安卓充电器或统一;UOS 20发布 | 极客头条...
  14. C++ 虚函数表解析(转)
  15. html商城网站模板
  16. 创意视频混音软件:Remixvideo for Mac
  17. 如何给Word中的图片添加题注
  18. 微信点餐系统中出现的小问题记录
  19. 2018ICPC焦作站赛后总结
  20. iphone4s在ios7下解决卡顿问题

热门文章

  1. jQuery框架学习第三天:如何管理jQuery包装集
  2. 《目标检测》YOLO、SSD简单学习
  3. java 注册成功跳转,写了个注册页面填了注册信息后点注册按钮居然不跳转,为什么?...
  4. 改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降
  5. 自然语言处理 —— 2.3 词嵌入的特性
  6. leetcode —— 2. 两数相加 (对于链表更新的细节)
  7. Targeted Topic Modeling for Focused Analysis(TTM的理解)
  8. BCGControlBar MFC对话框换肤 续
  9. 批处理作业调度问题 ——回溯法详解
  10. Java图形开发--GUI