加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

nyoj28大数阶乘

发布时间:2020-12-14 02:52:56 所属栏目:大数据 来源:网络整理
导读:思路就是模拟手算,一步一步乘上去。每乘进去一个i,就从a0开始更新每个点。用c保存进位。每次更新就是用当前这个点的值乘新进入的i再加上上一个点留下来的进位C。开始没想出来原因就是觉得每次乘都要从头开始更新节点太麻烦会超时,但事实证明我想多了= = #
思路就是模拟手算,一步一步乘上去。每乘进去一个i,就从a0开始更新每个点。用c保存进位。每次更新就是用当前这个点的值乘新进入的i再加上上一个点留下来的进位C。开始没想出来原因就是觉得每次乘都要从头开始更新节点太麻烦会超时,但事实证明我想多了= =


#include
int main()
{
? ? int a[17000] = {0},s,c,i,j,m;
? ? scanf("%d",&m);
? ? a[0] = 1;
? ? for(i = 2 ; i <= m ; i++)
? ? {
? ? ? ? c = 0;
? ? ? ? for(j = 0 ; j < 17000 ; j++)
? ? ? ? {
? ? ? ? ? ? s = a[j] * i + c;
? ? ? ? ? ? a[j] = s % 10 ;
? ? ? ? ? ? c = s / 10;
? ? ? ? }
? ? }
? ? for(i = 17000 - 1 ; i >= 0 ; i--)
? ? ? ? if(a[i])
? ? ? ? break;
? ? for(; i >= 0 ; i--)
? ? ? ? printf("%d",a[i]);
? ? printf("n");
? ? return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读