zoukankan      html  css  js  c++  java
  • 阶乘计算 高精度

    基础练习 阶乘计算  
    时间限制:1.0s   内存限制:512.0MB
    问题描述
      输入一个正整数n,输出n!的值。
      其中n!=1*2*3*…*n
    算法描述
      n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数aA[0]表示a的个位,A[1]表示a的十位,依次类推。
      将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
      首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。
    输入格式
      输入包含一个正整数nn<=1000。
    输出格式
      输出n!的准确值。
    样例输入
    10
    样例输出
    3628800
     1 #include<iostream>
     2 #include<string.h>
     3 using namespace std;
     4 
     5 int main(){
     6     int n,A[100000];
     7     cin>>n;
     8     memset(A,0,sizeof(A));
     9     A[0] = 1;
    10     int bit = 0;
    11     for(int i = 1;i <= n;i++){
    12         int tem = 0;
    13         for(int j = 0;j <= bit;j++){
    14            A[j] = A[j] * i + tem;
    15            if(j==bit){
    16                  if(A[j] >= 10) 
    17                    bit++;
    18            }
    19            if(A[j] >= 10){
    20                  tem = A[j] / 10;
    21                  A[j] = A[j] % 10;
    22            }
    23            else
    24               tem = 0;//易错 
    25            
    26         }    
    27     }
    28     for(int i = bit;i >= 0;i--){
    29         cout<<A[i];
    30     }
    31     cout<<endl;
    32     return 0;
    33 } 
    View Code

    要注意进位只为后一位产生的,要记得更新,不管是否大于9

  • 相关阅读:
    单例模式
    pandas to_html
    restful
    numpy版本查看以及升降
    视频下载
    转载:caffe中的Reshape层
    caffe编译报错解决
    python 版Faster Rcnn
    转载:动态规划以及路径记录
    TensorFlow设置GPU占用量
  • 原文地址:https://www.cnblogs.com/chenzhiyuan/p/5171373.html
Copyright © 2011-2022 走看看