HDU 3123 GCC
来源:互联网 发布:淘宝网针织内衣高领 编辑:程序博客网 时间:2024/05/21 10:41
GCC
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 4204 Accepted Submission(s): 1384
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
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.
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
Constrains
0 < T <= 20
0 <= n < 10^100 (without leading zero)
0 < m < 1000000
Sample Input
110 861017
Sample Output
593846
n大于m的部分不需要求,取模后等于0了嘛
#include <iostream>#include <stdio.h>#include <string>#include <cstring>#include <cmath>#define N 1000009using namespace std;char s[N];int m;int main(){ int ca; scanf("%d",&ca); while(ca--) { int ff=0; scanf("%s%d",s,&m); int len=strlen(s); int num=0; if(len>=7) ff=m; else { for(int i=0;i<len;i++) { int a=s[i]-'0'; num+=a; num*=10; } num/=10; if(num>=m) { ff=m-1; } else ff=num; } __int64 ans=0; __int64 t=1; for(int i=1;i<=ff;i++) { t*=i; t%=m; ans+=t; ans%=m; } ans=(ans+1)%m;//如果开始ans取1后再求mod的话会wa,但是最后加1再取mod就过了 printf("%I64d\n",ans); } return 0;}
0 0
- hdu 3123 GCC
- hdu 3123 GCC
- hdu 3123 GCC
- HDU 3123 GCC
- HDU 3123 GCC(数学)
- Hdu 3123 GCC
- HDU 3123 GCC
- HDU 3123 GCC
- HDU-3123-GCC
- HDU 3123 GCC
- HDU 3123 GCC
- HDU-3123 GCC(水题)
- hdu 3123 GCC (数学)
- hdu 3123 GCC(数学题)
- HDU 3123-GCC(递推)
- HDU GCC(HDU 3123)解题报告
- HDU 3123 GCC(模运算)
- HDU 3123 GCC (同余模定理)
- [LeetCode][Java] Populating Next Right Pointers in Each Node
- 黑马程序员_笔记_多线程(创建线程-继承Thread类)
- JavaScript获取事件制作作用的目标对象
- 生成連續ID記錄行
- 初窥Linux 之 我最常用的20条命令
- HDU 3123 GCC
- poj 1019
- 各种距离度量
- lucene快速入门---一个例子读懂
- HDU 4117 GRE Words (AC自动机 + 线段树优化DP) 2011年成都现场赛G题
- tcpdump
- [leetcode题后感]Jump Game
- [1] 欧拉函数的一种求解方法
- top