这是今晚阿里在线机试的题目啊啊啊,我最后输出i>=0,手欠写成i>=10,what the f**k???希望面试官懂我的意思,手滑了,哎。

#include <iostream>
using namespace std;
int main()
{int k=1;   //k为当前的位数int fact[10000]={1,0};int n=100;for(int i = 1;i <= n;i++){for(int j = 0;j < k;j++){fact[j] = i * fact[j];  //各位乘}for(int j=0;j<k;j++){if(fact[j] >= 10)  //整理更新各位,其实这里k不准确,这样计算会多出很多前缀0,{if(fact[ j+1 ] == 0)   k++;fact[j+1] += fact[j] / 10;fact[j] = fact[j] % 10;}}}for(int j=k; j>=0;j--){if(fact[j]!=0)//把前缀0省略掉{for(int i=j;i>=0;i--){cout<<fact[i];}break;}}return 0;
}

这样是真正的结果

如果不省略去前缀0,就是这样子的了。

我又改进了一下,精确地计算k

#include <iostream>
using namespace std;
int main()
{int k=1;   //k为当前的位数int fact[10000]={1,0};int n=100;for(int i = 1;i <= n;i++){for(int j = 0;j < k;j++){fact[j] = i * fact[j];  //各位乘}for(int j=0;j<k;j++){if(fact[j] >= 10)  //整理各位,其实这里k不准确,这样计算会多出很多前缀0,{
//                      if(fact[ j+1 ] == 0)
//                              k++;fact[j+1] += fact[j] / 10;fact[j] = fact[j] % 10;}}while(fact[k]>=10)//先看大于等于10的{fact[k+1]+=fact[k]/10;fact[k]=fact[k]%10;k++;}if(fact[k]>0)//只剩下大于0小于10的,这最高一位了{k++;//结束之后,k比最高位下标  多了  1}}for(int j=k-1; j>=0;j--){cout<<fact[j];}return 0;
}

-------------------------------------2021年3月3日10:13:41

C++ 求100的阶乘相关推荐

  1. 【C语言】编写C代码求100的阶乘进行高精度计算

    [C语言]编写C代码求100的阶乘进行高精度计算 要编写C语言代码求100的阶乘进行高精度计算,需要使用数组来存储每一位数字,并进行进位处理.因为100的阶乘有158位,超过了long long类型的 ...

  2. 【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)

    n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出) 算法题目 算法分析 代码实现 结果示例 算法题目 其实这个求n的阶乘问题,我们在刚刚学习c语言的时候,应该就有大致的了解过了,那个时候 ...

  3. Java中求100的阶乘

    使用BigInteger大容量运算类计算100的阶乘 一.一般算法(循环) public class Test { public static void main(String[] args) { i ...

  4. java求100的阶乘

    最初的想法:代码如下 /** * 计算100的阶乘 * @author Administrator * */ public class Test { public static void main(S ...

  5. 求100的阶乘有多少个约数?

    求100!有多少个约数? 解法:分解质因数. 先将 1 ∗ 2 ∗ 3 ∗ - - ∗ 99 ∗ 100 1 * 2 * 3 * -- * 99 * 100 1∗2∗3∗--∗99∗100分解质因数, ...

  6. c++语言求100的阶乘,C++-100阶乘

    解决方法就是自己构造数据结构. 可以参考Java中BigInteger的实现. 1. 数据结构中包含 标志位, -1表示负数, 1表示正数, 0表示0. 2. 用一个int数组 表示 这个大数. ja ...

  7. C语言计算100的阶乘

    学习是一个过程 , 打好坚实的基础往往可以起到事半功倍的效果 , 有时候看似浪费时间的把一道题反复研究 , 最后却能带来意想不到的好的结果 . 万丈高楼得有一个好的地基 , 心急吃不到热豆腐 , 这些 ...

  8. c语言100的阶乘如何编译,100的阶乘有关问题

    100的阶乘问题 求解,为什么结果为0,什么事溢出,怎么就会溢出,怎么解决?我刚学习C语言,希望多多关照! ------解决方案-------------------- 溢出就是开辟的空间已经不够用了 ...

  9. 100 的阶乘末尾有多少个0?

    本篇文章是在osChina的代码分享里下载下来的,这里把它整理一下. 前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0. 题解中给出的讲解提到, 一个数 n ...

最新文章

  1. matlab optimvar
  2. 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
  3. EOS账户系统(3)账户的权限
  4. linux yum及yum仓库
  5. python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建
  6. java中 移位运算_java中关于移位运算符的demo与总结(推荐)
  7. 升级MariaDB为10.1版本
  8. Chrome不显示OPTIONS请求的解决方法2021版chrome90
  9. 服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?
  10. SpringCloud Eureka参数配置项详解
  11. fpga 开源264编码_更好的开源安全性,学习编码,开放式家庭设计等
  12. 尚硅谷SpringCloud Alibaba
  13. Spring MVC+ Spring + Mybatis “三大框架”介绍
  14. 【笔记整理】电磁场复习——麦克斯韦四个方程组
  15. 《影响力》顺从心理学6个使人顺从的策略
  16. 支持bt,种子,torrent的离线下载网页版工具!
  17. php 图片上加文字,PHP实现在图片中添加中文文字
  18. 黑苹果和笔记本键盘按键的映射及快捷键的设置
  19. clickhouse 在货拉拉的应用实践,千亿级别数据实现秒级查询
  20. win10声音显示红叉问题解决

热门文章

  1. win7 virtualbox VBoxDD.DLL 0x80004005 uxtheme.dll
  2. HyperDock优化Mac的Dock栏
  3. oracle挂载磁盘阵列,数据库服务器没正常挂载磁盘阵列导致无法启动(一)
  4. 开源案例:Spring Boot + Vue 的音乐网站
  5. C++11 左值 右值
  6. 如鹏网学习笔记(十三)EasyUI
  7. linux防火墙规则配置教程,linux防火墙iptables详细教程
  8. 产品经理的brd/prd/mrd的写法
  9. 经验分享 | 如何搭建企业管理驾驶舱
  10. AFX_EXT_CLASS