链接:https://www.nowcoder.com/acm/contest/115/H

来源:牛客网

晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活。
他总是能从所学的知识散发出奇妙的思维。
今天他想到了一个简单的阶乘问题,
0!= 1
1!= 1
2!= 1 * 2 = 2
3!= 1 * 2 * 3 = 6
4!= 1 * 2 * 3 *4 = 24
5!= 1 * 2 * 3 *4 * 5 = 120
如果 n=1000000000,那么n的阶乘会是多少呢,小P当然知道啦,那么你知道吗?

输入描述:

第一行输入一个整数T(表示样例个数)
接下来T组样例
每组样例一行,输入一个整数N(0<=N<=1000000000)

输出描述:

输出T行
每一行输出N的阶乘 N!(由于这个数比较大,所以只要输出其对1000000007取膜的结果即可)

输入例子:
2
0
1000000000
输出例子:
1
698611116

-->

示例1

输入

2
0
1000000000

输出

1
698611116 因为时间限制,所以这题主要是先打表,在n小于10000000时,电脑求阶乘所需的时间比较小,所以
我们先把1~1000000000之间的数分成100个区间,每个区间有10000000个数字,例如[1,10000000)
[10000000,20000000),[20000000,30000000)......
然后我们现在电脑上把每个区间的第一个数的值求出来,例如10000000!%mod=682498929,20000000!%mod=491101308...
把这些值先存进数组a中,然后每次输入n时就判断在哪个区间,把需要计算的次数缩小在10000000次以下,然后暴力求解。 先把每个区间的第一个值算出来:
#include<stdio.h>
#define ll long long
#define mod 1000000007
ll ans;
int main()
{
ans=;
for(ll i=;i<=;i++)
{
ans=(ans*i)%mod;
if(i%==)
printf("%lld,",ans);
}
return ;
}

682498929,491101308,76479948,723816384,67347853,27368307,625544428,
199888908,888050723,927880474,281863274,661224977,623534362,970055531,261384175,
195888993,66404266,547665832,109838563,933245637,724691727,368925948,268838846,
136026497,112390913,135498044,217544623,419363534,500780548,668123525,128487469,
30977140,522049725,309058615,386027524,189239124,148528617,940567523,917084264,
429277690,996164327,358655417,568392357,780072518,462639908,275105629,909210595,
99199382,703397904,733333339,97830135,608823837,256141983,141827977,696628828,
637939935,811575797,848924691,131772368,724464507,272814771,326159309,456152084,
903466878,92255682,769795511,373745190,606241871,825871994,957939114,435887178,
852304035,663307737,375297772,217598709,624148346,671734977,624500515,748510389,
203191898,423951674,629786193,672850561,814362881,823845496,116667533,256473217,
627655552,245795606,586445753,172114298,193781724,778983779,83868974,315103615,
965785236,492741665,377329025,847549272,698611116

得到上面的数据

最后直接打表计算就可以了

#include<stdio.h>
#include<string.h>
#define ll long long
const ll mod=1e9+;
ll n,t;
int a[]={,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,};
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld",&n);
int k=n/;
ll ans=a[k];
for(ll i=k*+;i<=n;i++)
{
ans=(ans*i)%mod;
}
printf("%lld\n",ans);
}
return ;
}

江西财经大学第一届程序设计竞赛 H题 求大数的阶乘的更多相关文章

  1. 江西财经大学第一届程序设计竞赛 G题 小Q的口袋校园

    链接:https://www.nowcoder.com/acm/contest/115/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  2. 江西财经大学第一届程序设计竞赛 F题 解方程

    链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  3. 江西财经大学第一届程序设计竞赛 H

    链接:https://www.nowcoder.com/acm/contest/115/H来源:牛客网 题目描述 晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活. 他总是能从所 ...

  4. 江西财经大学第一届程序设计竞赛 G

    链接:https://www.nowcoder.com/acm/contest/115/G来源:牛客网 题目描述 周末,小Q喜欢在PU口袋校园上参加各种活动刷绩点,体验丰富多彩的大学生活. 但是每个活 ...

  5. 江西财经大学第一届程序设计竞赛 F

    链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 题目描述 对于方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 ...

  6. 江西财经大学第一届程序设计竞赛 E

    链接:https://www.nowcoder.com/acm/contest/115/E来源:牛客网 题目描述 当你的好友给你发来一条消息,你的消息列表上就会置顶显示该好友的名字以及该好友发给你的消 ...

  7. 江西财经大学第一届程序设计竞赛 C

    链接:https://www.nowcoder.com/acm/contest/115/C来源:牛客网 题目描述 决赛圈还剩下两个人,“伏地魔”XDD和跑毒进圈的FZL,XDD拿着狙击枪AWM瞄准并准 ...

  8. 江西财经大学第一届程序设计竞赛 B

    链接:https://www.nowcoder.com/acm/contest/115/B来源:牛客网 题目描述 给出一个出生日期,比如:1999-09-09, 问:从出生那一天开始起,到今天2018 ...

  9. 江西财经大学第一届程序设计竞赛 A

    链接:https://www.nowcoder.com/acm/contest/115/A来源:牛客网 题目描述 "挤需体验五番钟,里造会挨上这款游戏!" 怎么可能嘛!当我是傻子吗 ...

随机推荐

  1. Vim 常用命令和编辑方法

    命令模式 :e <path/to/file> → 打开一个文件 :w → 存盘 :wq → 存盘 + 退出 (:w 存盘, :q 退出)   (陈皓注::w 后可以跟文件名) :savea ...

  2. day11-mysql中的mysql数据库不见了

    mysql中的mysql数据库不见了 昨天刚刚在vmware虚拟机的linux上安装mysql,今天登上就发现一个问题.通过网上漫长的寻找,终于解决了.所以我在这把我解决的步骤跟大家分享一下. 问题就 ...

  3. Django 数据库的迁移

    先数据库迁移的两大命令: python manage.py makemigrations & python manage.py migrate 前者是将model层转为迁移文件migratio ...

  4. ubuntu 安装oracle客户端

    from: http://webikon.com/cases/installing-oracle-sql-plus-client-on-ubuntu Installing Oracle SQL*Plu ...

  5. git release功能

    命令行: git tag -a v3. -m "这是4.0版本" git push origin v3. //git tag -a 标签名称 -m "说明" / ...

  6. linux 内核假死循环导致的问题

    [, comm: -IFileSender Tainted: G B ENX -- ZTE Grantley/S1008 [:[<ffffffff810fb2cb>] [<fffff ...

  7. 从底层获取接口url携带的数据

    从底层获取接口url携带的数据 //实例化HttpServletRequest HttpServletRequest request = ServletHolderFilter.getContext( ...

  8. maven ,添加加密算法 apache commons-codec.jar 包

    在百度搜索commons-codec.jar maven  , http://mvnrepository.com/ 到 maven 库搜索 commons-codec.jar maven .你需要添加 ...

  9. hibernate criteria Restrictions工具类用法

    CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid); // 查询条件组装器 org.jeecgframework.core.ext ...

  10. LISTVIEW显示JPEG缩略图

    http://www.ctsys.cn/files/SHOW_FILES.ASPX?ID=22 许多的JPEG图片浏览器(如由我设计的<JPEG浏览缩放器>),都可以将JPEG缩略图放置到 ...