利用数组模拟数字,实现计算大数字阶乘00

做题时遇到一道题,计算150的阶乘并打印,没有任何思路T_T,百度了一下看到了很多巨巨写的代码,看了好久才明白。

要向巨巨们学习,好东西要分享出来,才不像某人一样藏在自己的草稿箱里(此处做一个鄙视的表情),弱以后解决了一些较难的问题,也会在这里分享~

废话不多,开始正题。


目标:利用数组模拟数字,实现计算大数字阶乘

编程语言:C/C++

编译环境 code::blocks 13.12


解析:

1.读题

所给的数据为大数字,long long int也不过64位,没有足够的空间来储存阶乘,所以想到了数组模拟数字的思想。

2.解题思路

用一道小学竖式运算来做引例

1 2 3 4

*         5

———

6170

如上图,不难想到,利用数组来模拟这一过程,用若干个<10的正整数组成数组来模拟数字,然而上图乘法运算用低位开始逐个乘以乘数, 于是在数组中逆置模拟数字,下图给出1-7的模拟阶乘运算思路

0--1

1--1

2--2

3--6

4--4 2

5--0 2 1

6--0 2 7

7--0 4 0 5

3.具体操作

声明一个整形数组nun[200]用于模拟数字,数组大小大于结果数字位数,声明变量temp、digit、next分别用于临时储存每一位的阶乘结果,数字位数、以及进

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值