(hdu3123)GCC(观察数据范围)
来源:互联网 发布:淘宝图片怎么拍摄技巧 编辑:程序博客网 时间:2024/06/07 11:27
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 5137 Accepted Submission(s): 1714
Problem Description
The GNU Compiler Collection (usually shortened to GCC) is a compiler system produced by the GNU Project supporting various programming languages. But it doesn’t contains the math operator “!”.
In mathematics the symbol represents the factorial operation. The expression n! means “the product of the integers from 1 to n”. For example, 4! (read four factorial) is 4 × 3 × 2 × 1 = 24. (0! is defined as 1, which is a neutral element in multiplication, not multiplied by anything.)
We want you to help us with this formation: (0! + 1! + 2! + 3! + 4! + … + n!)%m
Input
The first line consists of an integer T, indicating the number of test cases.
Each test on a single consists of two integer n and m.
Output
Output the answer of (0! + 1! + 2! + 3! + 4! + … + n!)%m.
Constrains
0 < T <= 20
0 <= n < 10^100 (without leading zero)
0 < m < 1000000
Sample Input
1
10 861017
Sample Output
593846
Source
2009 Asia Wuhan Regional Contest Online
题意:给定两个数n,m(0 <= n < 10^100 (without leading zero))(0 < m < 1000000),求(0! + 1! + 2! + 3! + 4! + … + n!)%m.
分析:注意到本题n的长度最大是100,肯定不能直接输入,转为字符串输入,然后不能直接模拟,会TLE,注意m的范围最大为10^6,当n的长度大于6时,n!%m==0,这里n取m,就不用算后面的;所以这里判断一下,然后要注意字符串转化为数字时,要用long long,防止n!计算的过程溢出!!!
AC代码:
#include<cstdio>#include<cstring>using namespace std;typedef long long LL;int main(){ int t,m; scanf("%d",&t); while(t--) { char str[105]; scanf("%s%d",str,&m); int len=strlen(str); LL n,tmp; if(len>=7) n=m; else { tmp=0; for(int i=0; i<len; i++) tmp=tmp*10+str[i]-'0'; n=tmp; } LL ans=0; tmp=1; for(int i=1; i<=n; i++) { tmp=(tmp*i)%m; ans=(ans+tmp)%m; } printf("%lld\n",(ans+1)%m); } return 0;}
- (hdu3123)GCC(观察数据范围)
- HDU3123 GCC(技巧题)
- hdu3123 GCC
- 计算机的数据存储及VC&GCC的数值范围
- 【例题】【观察范围】NKOJ3090 丢钉子
- 数据范围
- 数据范围
- 【数据范围】
- XFS文件系统简介(xfs_info观察相关数据)
- Flex 的数据绑定观察
- Flex 的数据绑定观察
- 海量小范围数据排序(位图)
- Romantic(扩展欧几里得)注意数据范围
- 《我与大数据的365天》 ——(3) 【写代码观察数据变化】
- KVO(键值观察)
- 观察
- 观察
- gcc 调试汇编 以及 对函数堆栈 的观察
- POJ 1177-Picture(线段树+离散化+扫描线)
- rman自动控制文件备份的恢复
- angular跨域的ajax--json数据请求
- poj 1979
- 数据结构实验之栈四:括号匹配(栈)
- (hdu3123)GCC(观察数据范围)
- 部分和问题
- 大话设计模式-Study-Tips-第二章-策略模式
- 数字字符转换为整数
- struts2中生成二维码
- spring boot(13)-logback和access日志
- vue的爬坑之路,这里面有好多
- Vue
- jQuery实现图片轮播(淡入淡出效果)