算1 |
您所在的位置:网站首页 › 求阶乘累加和的c语言 › 算1 |
题目:输入n,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≦10⁶,n!表示前n个正整数之积。
这里需要一点数学知识:要计算只包含加法, 减法和乘法的整数表达式除以正整数n 的余数, 可以在每步计算之后对n取余, 结果不变. 神马意思呢这句话? 就以本题为栗子,计算(1!+2!+3!+...+n!)%1000000 注意是每步计算之后对1000000取余,所以计算步骤可以如下: 第1步:1!%1000000=1 第2步:2!%1000000=2 第3步:(1+2)%1000000=3 第4步:3!%1000000=6 第5步:(3+6)%1000000=9//第3步与第4步结果相加取余 第6步:4!%1000000=24 第7步:(9+24)%1000000=33//第5步与第6步结果相加取余 。。。。。。 #include using namespace std; int main() { int n; cin >> n; int s = 1,sum=0,mod = 1000000; for (int i = 1; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |