杭电acm 3132GCC(简单数论)
来源:互联网 发布:淘宝直播卖东西可信吗 编辑:程序博客网 时间:2024/06/05 18:43
GCC
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 5140 Accepted Submission(s): 1716
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
Source
2009 Asia Wuhan Regional Contest Online
想法:
n>m时,比m大的数乘起后对取余m后没影响
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n,m,cas,t;
long long mid,sum;
char s[1000];
scanf("%d",&cas);
while(cas--)
{
scanf("%s %d",&s,&m);
if(strlen(s)>=7)
t=m;
else sscanf(s,"%d",&t);
mid=1;
sum=1;
for(i=1;i<=t;i++)
{
mid=(mid*i)%m;
sum=(sum+mid)%m;
}
printf("%lld\n",sum%m);//这里一定一定要%m 否则会错
}
return 0;
}
#include<string.h>
int main()
{
int i,j,n,m,cas,t;
long long mid,sum;
char s[1000];
scanf("%d",&cas);
while(cas--)
{
scanf("%s %d",&s,&m);
if(strlen(s)>=7)
t=m;
else sscanf(s,"%d",&t);
mid=1;
sum=1;
for(i=1;i<=t;i++)
{
mid=(mid*i)%m;
sum=(sum+mid)%m;
}
printf("%lld\n",sum%m);//这里一定一定要%m 否则会错
}
return 0;
}
阅读全文
0 0
- 杭电acm 3132GCC(简单数论)
- 杭电acm 1365 数论
- 杭电acm 5969 最大的位或(数论)
- acm杭电acm5974 A Simple Math Problem 数论(最大公约数最小公约数,解方程x )
- 杭电(oj)ACM 2586 简单LCA
- 杭电acm 折线分割平面(简单题)
- 杭电acm 1259ZJUTACM(简单题)
- 杭电acm 2539点球大战(简单字符串)
- 杭电ACM课件学习 简单数学题
- 杭电ACM 1096 简单求和
- 杭电ACM-1237-简单计算器
- 杭电 ACM 1035 简单模拟题
- 杭电acm—1237 简单计算器
- 杭电1431 回文素数 (数论)
- 杭电 1164 数论
- 杭电 1017 数论
- 杭电 3833 数论
- 杭电 2879 数论
- C++模板(一)
- 手把手教你用Mysql-Cluster-7.5搭建数据库集群
- Python whl包、tar包、tar.gz包的区别
- Shell实现俄罗斯方块小游戏
- 玲珑杯1114(组合数)
- 杭电acm 3132GCC(简单数论)
- 三条命令解决Git 如何删除远程服务器文件同时保留本地文件
- 百度地图简要功能实现
- hdu 6061 NTT
- 网易2017年校招笔试题--最大奇约数
- TensorFlow学习笔记
- 微信公众平台开发——如何保证access_token长期有效?
- 《代码整洁之道》第七章——错误处理
- hdu 6070 Dirt Ratio 二分,线段树