N!

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 88267    Accepted Submission(s): 26008

Problem Description

Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!

Input

One N in one line, process to the end of file.

Output

For each N, output N! in one line.

Sample Input

1

2

3

Sample Output

1

2

6

(这个题用JAVA更好)

用java:

import java.math.BigInteger;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner (System.in);

        int n;

        while(in.hasNextInt()) {

            n=in.nextInt();

            BigInteger a=BigInteger.ONE;

            for(int i=1;i<=n;i++)

                a=a.multiply(BigInteger.valueOf(i));

            System.out.println(a);

        }

    }

}

这个思路是从其他博客上看到的。。。

思路:

万进制:

这题也让我有了点想法。我们经常用的进制就是2进制、8进制、10进制和16进制。何来“万进制”?世上本无,有人喊了也就有了。呵呵

现在来谈谈自己对进制的一点不成熟的想法。计算机能“识别”0和1,人能识别0、1、2、3、4、5、6、7、8、9以及其多位组合。那么,

为啥就单单有2、8、10、16这几个进制。我想并不止这几个,10进制是我们日常生活沿用来了的,难道来个5进制就不行?当然不是,不过

一切以方便优先罢了!2进制是因为方便计算机识别才兴起的,5000年前应该不会有2进制!8进制和16进制又因何2进制有天然联系,所以

也出现了用途,2^3=8、2^4=16(例:这在《数字逻辑》中关于编码方面有相关应用)。

就题论题。再来谈谈1042的万进制。也以一个例子来说明:

107924372*15=1618865580。

①上面的乘法如果运用10进制,很简单。

②万进制呢?

首先存数:a[0]=4372,a[1]=792,a[2]=1。107924372,从低位到高位每四位存到一个数组元素中。此时,总位数为3。

接着运算:a[0]*15=65580,所以进位为a[0]/10000=6,a[0]=a[0]%10000=5580。a[1]*15=11880,a[1]=a[1]+6=11886。

进位为1,a[1]=1886。a[2]*15=15,a[2]=a[2]+1=16,进位为0。

输出:a[2],a[1],a[0]即为1618865580。要注意的是:如果a[2]=886,那么该如何输出?直接输出:168865580。显然不对,

正确的是16088655880。输出的原则是:最高位原样输出,其它位如果小于1000,则高位补0,一位一补。

总之,高精度计算阶乘一般用万进制。

#include<iostream>

#include<iomanip>

using namespace std;

void fac(int n)

{

int a[];

int carry=,place=,i,j;

a[]=;

for(i=;i<=n;i++)

{

carry=;

for(j=;j<=place;j++)

{

a[j]=a[j]*i+carry;

carry=a[j]/;

a[j]%=;

}

if(carry>)

{

place++;

a[place]=carry;

}

}

cout<<a[place];

for(i=place-;i>=;i--)

cout<<setw()<<setfill('')<<a[i];

}

int main()

{

int n;

while(cin>>n)

{

fac(n);

cout<<endl;

}

return ;

}

(大数 万进制) N! hdu1042的更多相关文章

  1. hdu-1042(大数+万进制)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 参考文章:https://blog.csdn.net/tigerisland45/article ...

  2. HDU1042 N!(大数问题,万进制)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042 N! Time Limit: 10000/5000 MS (Java/Others)    M ...

  3. bzoj 1005: [HNOI2008]明明的烦恼 树的prufer序列+万进制

    题目传送门 思路: 这道题需要前置知识prufer编码,这篇博客对prufer编码和这道题的分析写的很好. 这里主要讲一些对大数阶乘的分解,一个办法当然是用高精度,上面这篇博客用的是java,还有一个 ...

  4. 【hdoj_1715】大菲波数(大数+100000000进制)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1715 本题采用大数加法即可解决.采用100000000进制速度更快. C++代码如下: #include& ...

  5. HDU5050:Divided Land(大数的进制转化与GCD)

    题意:给定大数A和B,求gcd.所有数字都是二进制. 思路:先输入字符串,再转化为大数,然后用大数的gcd函数,最后转化为字符串输出. 利用字符串和大数转化的时候可以声明进制,就很舒服的完成了进制转化 ...

  6. Java 大数任意进制转换

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = ...

  7. HDU_1042——阶乘,万进制

    #include <cstdio> ; const int BASE = MAX; int main() { int n, i, j; while(~scanf("%d" ...

  8. poj 2635 千进制

    转自:http://www.cnblogs.com/kuangbin/archive/2012/04/01/2429463.html 大致题意: 给定一个大数K,K是两个大素数的乘积的值. 再给定一个 ...

  9. poj 2305(指定进制,大数取模)

    题意:输入一个进制b,在输入两个基于b进制的大整数 x,y ,求x%y的b进制结果. http://162.105.81.212/JudgeOnline/problem?id=2305 函数: Str ...

随机推荐

  1. Buy the Ticket HDU 1133

    传送门 [http://acm.hdu.edu.cn/showproblem.php?pid=1133] 题目描述和分析 代码 #include<iostream> #include< ...

  2. 必应词典案例分析——个人博客作业week3

    案例分析 ——必应词典客户端 软件缺陷常常又被叫做Bug,即为计算机软件或程序中存在的某种破坏正常运行能力的问题.错误,或者隐藏的功能缺陷. 缺陷的存在会导致软件产品在某种程度上不能满足用户的需要.I ...

  3. Linux内核及分析 第八周 进程的切换和系统的一般执行过程

    学习笔记: 一.进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-boun ...

  4. HTML编码规则

    <!DOCTYPE html><!-- 为每一个HTML页面的第一行添加标准模式 --> <html lang="en-us"> <!-- ...

  5. QT QProgressBar QProgressDialog 模态,位置设置,无边框,进度条样式

    一  关于模态设置 QProgressDialog可以设置模态(需要在new的时候传入parent),QProgressBar设置不好: 只有dialog可以设置模态,widget不能设置模态(QPr ...

  6. Post Tuned Hashing,PTH

    [ACM 2018] Post Tuned Hashing_A New Approach to Indexing High-dimensional Data [paper] [code] Zhendo ...

  7. 接口(interface)与多态

    1. 接口(interface)是抽象方法与常量值的集合: 2. 从本质上来讲,接口是一种特殊的抽象类,这种抽象类中只包含常量与方法的定义,而没有变量和方法的实现: 3. 接口中声明的属性默认为:pu ...

  8. 配置wbepack

    proxyTable:{ //反向代理 先建立连接 '/sexLady':{ target:url//请求地址 暗号:'/sexLady ' changeOrigin:true ,//类似baseUr ...

  9. 编译安装openssl

    wget https://www.openssl.org/source/openssl-1.1.0g.tar.gztar xf openssl-1.1.0g.tar.gzcd openssl-1.1. ...

  10. JQuery从入门到精通

    1.JQuery查找元素 例:将表格的单元格中件数和重量差异不为0的数据标红 代码如下: <style> .notice{ color: red; } .right{ color: gre ...