Time Limit: 10 second

Memory Limit: 2 MB

问题描述

用高精度的方法,求n!的精确值(n的值以一般整数输入)。

Input

文件输入仅一行,输入n。

Output

输出n的阶层的值,最后用回车结束

Sample Input

10

Sample Output

3628800

【题解】

高精度乘单精度,只要处理好进位,调整数字长度就没有问题啦。

【代码】

#include <cstdio>

int n,a[100000],l1 =1;

void input_data()
{
scanf("%d",&n);
for (int i = 1; i <= 999;i++) //先初始化存高精度的数组
a[i] = 0;
a[1] = 1; //0! == 1
} void get_ans()
{
for (int i = 1;i <= n;i++) //从1一直乘到n
{
int x = 0; //x用来处理进位
for (int j = 1;j <= l1;j++)
{
a[j] = a[j] *i + x;
x = a[j] / 10;
a[j] = a[j] % 10;
}
while ( x > 0) //处理数字的长度
{
l1++;
a[l1] += x;
x = a[l1] / 10;
a[l1] = a[l1] % 10;
}
}
} void output_ans()
{
for (int i = l1;i >= 1;i--) //倒序输出
printf("%d",a[i]);
} int main()
{
input_data();
get_ans();
output_ans();
return 0;
}

【9101】求n!的值的更多相关文章

  1. 《用C++语言编写一个程序,求PI的值》

    //编写一个C++程序求PI的值 /* PI=16arctan(1/5)-4arctan(1/239) 其中arctan用如下形式的极数计算: arctan=x-(x^3/3)+(x^5/7)-(x^ ...

  2. hdu3183 rmq求区间最值的下标

    两个月前做的题,以后可以看看,是rmq关于求区间最值的下标 /* hdu3183 终点 给一个整数,可以删除m位,留下的数字形成一个新的整数 rmq 取n-m个数,使形成的数最小 */ #includ ...

  3. xdoj-1324 (区间离散化-线段树求区间最值)

    思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i]  覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...

  4. hdu 5443 (2015长春网赛G题 求区间最值)

    求区间最值,数据范围也很小,因为只会线段树,所以套了线段树模板=.= Sample Input3110011 151 2 3 4 551 21 32 43 43 531 999999 141 11 2 ...

  5. POJ - 3264 Balanced Lineup (RMQ问题求区间最值)

    RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就 ...

  6. 用for和while循环求e的值[e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!]

    /*编敲代码,依据下面公式求e的值. 要求用两种方法计算: 1)for循环.计算前50项 2)while循环,直至最后一项的值小于10-4 e=1+1/1!+1/2!+1/3!+1/4!+1/5!+. ...

  7. HDU-1754-I Hate It-线段树-求区间最值和单点修改

    开学新拉的题目,老题重做,思路会稍微比之前清晰,不过这也算是一点点进步了. 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现 ...

  8. hdu 1754 I Hate It (线段树求区间最值)

    HDU1754 I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u D ...

  9. Python max()方法扩展:求字典中值最大的键

    重要的应该写在前面[捂脸]   场景一:仅求最大值对应的键,代码如下: >>> dic = {'A':4, 'B':2, 'C':3} >>> max_key = ...

  10. C++/python求哈希值(SHA256)

    发现一个很奇怪的现象: python语言求哈希值所用时间竟然比C++少: C++ code 1 #include "stdafx.h" 2 #include <windows ...

随机推荐

  1. python 常规字符匹配

  2. 【水滴石穿】rn_statusbar

    先放项目地址https://github.com/hezhii/rn_statusbar 来看一下效果 咩有感觉很怎么样,看代码 根入口文件 //index.js //看代码我们知道入口是app.js ...

  3. phpcms 允许英文目录有空格

    大家都用过phpcm添加栏目吧,在添加栏目里面,有个选项是 英文目录,这里目录可以用作伪静态功能.这么英文不能有空格等特殊字符.但是如果页面中需要引用包含空格的字符呢,例如,关于我们页面,我要显示英文 ...

  4. MAC+VS Code+C/C++调试配置

    目录 VS Code C/C++ 环境配置 添加工作区文件夹 Say Hello world 关于三个配置文件--Debug 原地址 VS Code C/C++ 环境配置 添加工作区文件夹 虽然代码能 ...

  5. python 自定义检测缺失值的方法

  6. TensorFlow3学习笔记1

    1.简单实例:向量相加 下面我们通过两个向量相加的简单例子来看一下Tensorflow的基本用法. [1. 1. 1. 1.] + [2. 2. 2. 2.] = [3. 3. 3. 3.] impo ...

  7. Oracle函数——MINUS

    解释 “minus”直接翻译为中文是“减”的意思,在Oracle中也是用来做减法操作的,只不过它不是传统意义上对数字的减法,而是对查询结果集的减法.A minus B就意味着将结果集A去除结果集B中所 ...

  8. 在哈尔滨的寒风中EOJ 3461【组合数学】

    http://acm.ecnu.edu.cn/problem/3461/ 还是能力不够,不能看出来棋盘足够大时,马是可以到达任何位置的.还是直接看题解怎么说的吧:(http://acm.ecnu.ed ...

  9. jQuery,javascript获得网页的高度和宽度$(document).height / $(window).height

    一.javascript 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: documen ...

  10. Java练习 SDUT-1117_求绝对值(选择结构)

    C语言实验--求绝对值(选择结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 从键盘上输入任意一个整数,然后输出它 ...