一天一道算法题---6.11---大数阶乘

感谢微信平台----一天一道算法题----每天多一点进步

 

大数的概念 感觉是我接触acm 1 2 个月之后才有的....64位的Long long 和 __int64 也大概都是那时候才有的..

大数 相加 相乘 相除 求余  相减不知道 有没有。。。

都是应该要掌握的..

可能 我也会陆续把上面的全慢慢贴上来

// 呆会就直接把 微信提供的代码给贴上来了  先要去次午饭了 早饭 午饭永远是连一起的 ..........

// 刚刚碰到个最小生成树的题 第一次用了邻接表去做 蛮cool == 一起贴上来

 来自 刘汝佳 大神的代码~~

 1 // 大数阶乘
 2 
 3 #include <iostream>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int size = 5200;
 8 int result[size];
 9 
10 int main()
11 {
12     int i , j , n;
13     int temp , sum;
14     while( ~scanf("%d",&n) )
15     {
16         memset( result , 0 , sizeof(result) );
17         result[0] = 1;
18         for( i = 2 ; i<=n ; i++ )
19         {
20             temp = 0;
21             for( j = 0 ; j<size ; j++ )
22             {
23                 sum = result[j]*i + temp;
24                 result[j] = sum % 10;
25                 temp = sum / 10;
26             }
27         }
28         for( j = size-1 ; j>=0 ; j-- )
29             if( result[j] )
30                 break;
31         for( i = j ; i>=0 ; i-- )
32             printf( "%d",result[i] );
33         printf( "\n" );
34     }
35     return 0;
36 }
View Code

 

转载于:https://www.cnblogs.com/radical/p/3781689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值