C++ 求100的阶乘
这是今晚阿里在线机试的题目啊啊啊,我最后输出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的阶乘相关推荐
- 【C语言】编写C代码求100的阶乘进行高精度计算
[C语言]编写C代码求100的阶乘进行高精度计算 要编写C语言代码求100的阶乘进行高精度计算,需要使用数组来存储每一位数字,并进行进位处理.因为100的阶乘有158位,超过了long long类型的 ...
- 【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)
n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出) 算法题目 算法分析 代码实现 结果示例 算法题目 其实这个求n的阶乘问题,我们在刚刚学习c语言的时候,应该就有大致的了解过了,那个时候 ...
- Java中求100的阶乘
使用BigInteger大容量运算类计算100的阶乘 一.一般算法(循环) public class Test { public static void main(String[] args) { i ...
- java求100的阶乘
最初的想法:代码如下 /** * 计算100的阶乘 * @author Administrator * */ public class Test { public static void main(S ...
- 求100的阶乘有多少个约数?
求100!有多少个约数? 解法:分解质因数. 先将 1 ∗ 2 ∗ 3 ∗ - - ∗ 99 ∗ 100 1 * 2 * 3 * -- * 99 * 100 1∗2∗3∗--∗99∗100分解质因数, ...
- c++语言求100的阶乘,C++-100阶乘
解决方法就是自己构造数据结构. 可以参考Java中BigInteger的实现. 1. 数据结构中包含 标志位, -1表示负数, 1表示正数, 0表示0. 2. 用一个int数组 表示 这个大数. ja ...
- C语言计算100的阶乘
学习是一个过程 , 打好坚实的基础往往可以起到事半功倍的效果 , 有时候看似浪费时间的把一道题反复研究 , 最后却能带来意想不到的好的结果 . 万丈高楼得有一个好的地基 , 心急吃不到热豆腐 , 这些 ...
- c语言100的阶乘如何编译,100的阶乘有关问题
100的阶乘问题 求解,为什么结果为0,什么事溢出,怎么就会溢出,怎么解决?我刚学习C语言,希望多多关照! ------解决方案-------------------- 溢出就是开辟的空间已经不够用了 ...
- 100 的阶乘末尾有多少个0?
本篇文章是在osChina的代码分享里下载下来的,这里把它整理一下. 前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0. 题解中给出的讲解提到, 一个数 n ...
最新文章
- matlab optimvar
- 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
- EOS账户系统(3)账户的权限
- linux yum及yum仓库
- python怎么把所有标点符号置空_Python从小白到攻城狮(1)——python环境搭建
- java中 移位运算_java中关于移位运算符的demo与总结(推荐)
- 升级MariaDB为10.1版本
- Chrome不显示OPTIONS请求的解决方法2021版chrome90
- 服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?
- SpringCloud Eureka参数配置项详解
- fpga 开源264编码_更好的开源安全性,学习编码,开放式家庭设计等
- 尚硅谷SpringCloud Alibaba
- Spring MVC+ Spring + Mybatis “三大框架”介绍
- 【笔记整理】电磁场复习——麦克斯韦四个方程组
- 《影响力》顺从心理学6个使人顺从的策略
- 支持bt,种子,torrent的离线下载网页版工具!
- php 图片上加文字,PHP实现在图片中添加中文文字
- 黑苹果和笔记本键盘按键的映射及快捷键的设置
- clickhouse 在货拉拉的应用实践,千亿级别数据实现秒级查询
- win10声音显示红叉问题解决
热门文章
- win7 virtualbox VBoxDD.DLL 0x80004005 uxtheme.dll
- HyperDock优化Mac的Dock栏
- oracle挂载磁盘阵列,数据库服务器没正常挂载磁盘阵列导致无法启动(一)
- 开源案例:Spring Boot + Vue 的音乐网站
- C++11 左值 右值
- 如鹏网学习笔记(十三)EasyUI
- linux防火墙规则配置教程,linux防火墙iptables详细教程
- 产品经理的brd/prd/mrd的写法
- 经验分享 | 如何搭建企业管理驾驶舱
- AFX_EXT_CLASS