zoukankan      html  css  js  c++  java
  • 2019/3/31acm周三(三人)/hdu1042/高精度计算(未懂!)

    计算n!

    给定整数 N (0 ≤ N ≤ 10000),你的任务是计算 N! 。
    输入
    每行一个整数 N,处理到文件结束为止。
    输出
    对于每个 N,输出一行,包含 N! 的计算结果。
    示例输入
    0
    1
    2
    3
    示例输出
    1
    1
    2
    6

    n!题目链接hdu1042
    思路:n!过大,特别是当n到达10000时,这时候就需要考虑高精度运算了。
    法一(我):高精度计算,模板。
    法二:大数+万进制

    收获:ios::sync_with_stdio(false);用于减少cin/cout的时间
    了解了高精度运算

    代码实现:

    #include <iostream>
    #include <algorithm>
    #include <iostream>
    #include <string>
    #include <stdio.h>
    #include <cstdlib>
    #include <cstring>
    #include <cstdio>
    #include <math.h>
    #include <climits>
    #include <queue>
    #include <iomanip>
    #include <vector>
    using namespace std;
    int main()
    {
        ios::sync_with_stdio(false);
        int n;
        while(cin>>n)
        {
            if(n==0||n==1)
            {
                cout<<1<<endl;
            }
            else
            {
                int a[100000]={0},i,j,sum,t,k,q;
                a[0]=1;
                k=1;
                for(i=2;i<=n;i++)
                {
                    sum=0;
                    for(j=0;j<k;j++)
                    {
                        t=a[j]*i+sum;
                        a[j]=t%10;
                        sum=t/10;
                    }
                    while(sum)
                    {
                        a[k++]=sum%10;//一位一位存进去
                        sum/=10;
                    }
                }
                for(q=k-1;q>=0;q--)
                    cout<<a[q];
                cout<<endl;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    cocoapods使用遇到的一些问题
    so
    UITextField的各种属性方法介绍
    <<第1章 初识JAVA>>
    《第16章 复习》
    《第17章 图书管理系统》
    《第15章 字符串》
    《第13章 猜拳游戏》
    《第14章 带参数的方法》
    《第12章 类的无参方法》
  • 原文地址:https://www.cnblogs.com/gidear/p/11773656.html
Copyright © 2011-2022 走看看