10000以内n的阶乘

这篇博客介绍了如何计算10000以内整数n的阶乘。通过题目描述、输入和输出格式,展示了这是一道涉及低精度乘高精度计算的问题。算法流程包括使用数组存储阶乘值,处理位进位,并确保首位不为0。最后给出了具体的代码实现。
摘要由CSDN通过智能技术生成

10000以内n的阶乘

题目描述

求 10000以内n的阶乘。

输入格式

只有一行输入,整数 n(0≤n≤10000)。

输出格式

一行,即n!的值。

题目分析

n的阶乘求法:1 * 2 * 3 * ……* n
(i=1乘到i=n)

这道题显然是一道低精度乘高精度的题
其中i是小于10000的数,(i-1)的阶乘是一个很大的数

要点
1.用数组来存储(i-1)!
2.找到一个变量存储数组的个数——避免0的存在

算法流程:

1.输入
2.1 先将i与数组里的每一个值都乘一遍
2.2 处理普通位进位:
——向前进位num/10
——自身赋值num%10
2.3处理首位进位及确定数组长度
——保证首位>0
——如果首位需要进位 则使用while循环进位,每进一次此时数组的个数要++
3.输出——从所记录的数组长度开始逆序输出

代码如下

#include <bits/stdc++.h>
using namespace std;


int num[100000];
int main(
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值