码迷,mamicode.com
首页 > 其他好文 > 详细

【HDU 1042】N!

时间:2018-06-07 19:42:58      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:hdu   一个   color   ems   oid   can   tar   integer   pre   

题目链接

题目描述

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

就是算n!。

 

 

解题思路

没啥说的,高精度吧,注意一个数组足矣,不然会t。

 

 

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int ans[50005];
 7 int n;
 8 int wei=1;
 9 inline void calc(int* a,int num){
10     for(register int i=0;i<=wei;i++){
11         a[i]*=num;
12     }
13     for(register int i=0;i<=50000;i++){
14         wei=i+1;
15         //if(!a[i])return;
16         if(a[i]>=10){
17             a[i+1]+=a[i]/10;
18             a[i]%=10;
19         }
20     }
21 }
22 int main(){
23     while(~scanf("%d",&n)){
24         wei=0;
25         memset(ans,0,sizeof(ans));
26         ans[0]=1;
27         for(register int i=2;i<=n;i++){
28             calc(ans,i);
29         }
30         for(register int i=wei;i>=0;i--){
31             if(ans[i]){
32                 for(;i>=0;i--){
33                     printf("%d",ans[i]);
34                 }
35             }
36         }
37         putchar(\n);
38     }
39 }

 

【HDU 1042】N!

标签:hdu   一个   color   ems   oid   can   tar   integer   pre   

原文地址:https://www.cnblogs.com/Fang-Hao/p/9152089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!