阶乘相关<同余与模算术>
题意:
题目很简明:
令S[n]=1*1!+2*2!+3*3!+4*4!+....+n*n!
求S[n]%10000007
多组测试数据
每组一个n
n的范围:1<=n<=1000000
思路:看代码看懂的,数学真的有魔性。最重要的算法是<同余与模算术刘汝佳/p314>,这个题还用了一个小技巧:在求n*n!的时候<!的优先级大于*的优先级>由于已经知道(n-1)!%mod=t,所以呢,只需要在t的基础上乘n即可。大神的代码,有改进。
<pre name="code" class="cpp">#include<stdio.h>
const int mod=10000007;
int main()
{
int n;
while(~scanf("%d",&n)){
int i;
long long s=0,t=1;
for (i=1;i<=n;i++){
t=(t*i)%mod;
s=(s+(t*i)%mod)%mod;
}
printf("%lld\n",s);
}
return 0;
}
阶乘相关<同余与模算术>的更多相关文章
- UVA-10929-You can say 11(秦九昭算法+同余与模算术)
原题链接 1000位大数取余: 秦九昭算法+同余与模算术: 1314 = (((1)*10+3)*10+1)*10+4 ( a + b ) % n = ( ( a % n ) + ( b % n ) ...
- HDU2114 Calculate S(n) (取模算术)
Calculate S(n) Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 学习联系 Java阶乘相关练习
题目一:一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度 double hou = 0.00008; for (int i = 1; i > 0; i++) { hou = ...
- HDOJ(HDU) 2212 DFS(阶乘相关、)
Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every d ...
- MATLAB取余求模
(1)fix(x) : 截尾取整 >> fix( [3.12 -3.12]) ans = 3 -3 (2)floor(x): 不超过x 的最大整数.(高斯取整) >> ...
- UVa-11582:Colossal Fibonacci Numbers!(模算术)
这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...
- java 取模运算% 实则取余 简述 例子 应用在数据库分库分表
java 取模运算% 实则取余 简述 例子 应用在数据库分库分表 取模运算 求模运算与求余运算不同.“模”是“Mod”的音译,模运算多应用于程序编写中. Mod的含义为求余.模运算在数论和程序设计中 ...
- [总结]数论和组合计数类数学相关(定理&证明&板子)
0 写在前面 0.0 前言 由于我太菜了,导致一些东西一学就忘,特开此文来记录下最让我头痛的数学相关问题. 一些引用的文字都注释了原文链接,若侵犯了您的权益,敬请告知:若文章中出现错误,也烦请告知. ...
- Java 之 数学相关类 Math、BigInteger、BigDecimal
一.java.lang.Math 类 一.Math 类概述 java.lang.Math 类包含用于执行基本数学运算的方法,如指数.对数.平方根和三角函数.类似于这样的类,其所有方法均为静态方法,并且 ...
随机推荐
- 《Windows驱动开发技术详解》之Windows内存管理
虚拟内存地址 Windows所有的程序(Ring0和Ring3层)可以操作的都是虚拟内存.有一部分单元会和物理内存对应起来,但并非一一对应,多个虚拟内存页可以映射同一个物理内存页.还有一部分单元会被映 ...
- mac随手笔记
在mac下安装有时候遇到一个问题,需要sudo指令来解决. sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等.这 ...
- why is agreement hard in a distributed system?
same question as: why is PAXOS necessary? 1, what if >1 nodes become leaders simultaneously? that ...
- 脚本添加crontab任务【转】
今天朋友问,计划任务是用crontab -e来添加的,如何使用脚本来添加呢? 在执行crontab -e命令时,会在/var/spool/cron目录下创建一个文件,文件的名称是你当前的用户名,内容就 ...
- Puppent 介绍原理及安装
Puppet原理: Puppet是一个或者多个master,众多client,所有的客户端都定期(默认为30分钟)使用facter工具把 客户端的基本信息,通过https的xmlrpc协议发送给服务器 ...
- ProgressDialog
几个方法介绍: 1.setMax() 设置对话框中进度条的最大值. 2.setTile() 设置标题. 3.setProgressStyl() 设置对话框中进度条的样式.例如:环形和水平. 参数: P ...
- asp:Property解释与例子
=======================================================================Property Get 语句在 Class 块中,声明构 ...
- 将decimal类型的数据转成2.12这样价钱的显示方式
UnitPrice = string.Format("{0:.00}", m.UnitPrice),
- WPF中静态引用资源与动态引用资源的区别
WPF中静态引用资源与动态引用资源的区别 WPF中引用资源分为静态引用与动态引用,两者的区别在哪里呢?我们通过一个小的例子来理解. 点击“Update”按钮,第2个按钮的文字会变成“更上一层楼”, ...
- js 判断提交表单
<SCRIPT language=javascript> function check_book() { if(document.form1.Username.value=="& ...