蓝桥杯-阶乘计算

简介: 阶乘计算

Problem Description:


输入一个正整数n,输出n!的值。

其中n!=1*2*3*…*n。

n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。

将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。

首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。


Input:


输入包含一个正整数n,n< =1000。


Output:


输出n!的准确值。  


Sample Input:


10


Sample Output:


3628800


程序代码:


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 10001
int a[N];
int main()
{
  int i,j,n,s,r=0;
  scanf("%d",&n);
  memset(a,0,sizeof(a));
  a[0]=1;
  for(i=2;i<=n;i++)
  {
    for(j=0;j<N;j++)
    {
      s=a[j]*i+r;
      r=s/10;
      a[j]=s%10;
    }
  }
  for(i=N-1;i>=0;i--)
    if(a[i])
      break;
  for(j=i;j>=0;j--)
    printf("%d",a[j]);
  return 0;
}
相关文章
|
6月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-476 计算质数和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-476 计算质数和
51 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-465 计算税额
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-465 计算税额
41 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-460 计算和差
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-460 计算和差
35 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-156 表达式计算
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-156 表达式计算
42 0
|
5月前
|
Java
2023蓝桥杯大赛省赛Java大学B组 阶乘求和
2023蓝桥杯大赛省赛Java大学B组 阶乘求和
20 0
|
5月前
|
Java
2022蓝桥杯大赛软件类省赛Java大学B组E题 求阶乘-CSDN博客
2022蓝桥杯大赛软件类省赛Java大学B组E题 求阶乘-CSDN博客
28 0
|
6月前
|
开发者 Python
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
69 1
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-680 数的计算
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-680 数的计算
53 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-573 计算最小公倍数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-573 计算最小公倍数
24 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-461 复杂的计算
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-461 复杂的计算
40 0