zoukankan      html  css  js  c++  java
  • Hdu1042 N! (阶乘高精度模板)

    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
     
    模板,每次计算阶乘数值,并将每位数值存放在数组中,模拟手算的原理,每次从低位开始乘,逐步到高位,期间不停更新数组中的数值。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <string.h>
     6 using namespace std;
     7 const int maxn=40000;
     8 int d[maxn];
     9 int main()
    10 {
    11     int n;
    12     while(cin>>n){
    13         memset(d,0,sizeof(d));
    14         d[0]=1;
    15         int t=0,tmp=0,carry=0;
    16         for(int i=1;i<=n;i++){
    17             for(int j=0;j<=t;j++){
    18                 tmp=d[j]*i+carry;
    19                 d[j]=tmp%10;
    20                 carry=tmp/10;
    21             }
    22             while(carry!=0){
    23                 d[++t]=carry%10;
    24                 carry/=10;
    25             }
    26         }
    27         for(int i=t;i>=0;i--){
    28             cout<<d[i];
    29         }
    30         cout<<endl;
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    io系列之常用流一
    C++ 函数参数的默认值
    C++ 函数匹配和作用域声明
    c++ vector 迭代器 demo
    C++ 函数重载和匹配
    C++函数重载和const
    C++函数重载
    iOS开源项目
    Linux系统/网络 笔记
    IO五种模式
  • 原文地址:https://www.cnblogs.com/wydxry/p/11069118.html
Copyright © 2011-2022 走看看