输入n,计算S = 1! + 2! + 3! + ...... + n!的末6位(不含前导0)。 n <= 10^6
样例输入:10
样例输出:37913
分析:此题需要注意溢出和时间的问题
溢出解决方案:要计算加法、减法和乘法的整数表达式除以正整数n的余数,可以再每步计算之后对n取余,结果不变。(原理:(a + b) % n = a % n + b % n)
n很大时,时间长的解决方案:注意到25!的阶乘有末尾6个0,则有(a + b) % n = a % n。也就说如果n大于24就相当于只计算n为24。(有兴趣的,可以尝试下没有优化前需要花多长时间)
#include<stdio.h> #include<time.h> int main(){ int n,sum = 0; const int MOD = 1000000; scanf("%d",&n); if(n > 24){ n = 24; } for(int i = 1; i <= n; i++){ int factorial = 1; for(int j = 1; j <= i; j++){ factorial = (factorial * j % MOD); } sum += factorial; } printf("%d\n",sum % MOD); printf("Time used=%.2lf\n",(double)clock()/CLOCKS_PER_SEC); return 0; }
去掉
if(n > 24){ n = 24; }
就可以测试没有优化前需要花多长时间
优化前与优化后的对比(单位s):
相关推荐
1至n各自阶乘之和,适宜初学者代码使用,并非最优仅供参考,谢谢合作
在VB(Visual Basic)编程语言中,"求阶乘之和"是一个常见的数学问题,它涉及到阶乘计算和序列求和。阶乘是指一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5的阶乘是5 × 4 × 3 × 2 × 1 = 120...
本题目是关于计算阶乘之和的问题,主要涉及到高精度计算,包括高精度加法和乘法的实现。以下是对这些知识点的详细解释: 1. **高精度计算**:在计算机中,标准的数据类型如int、long等有固定的存储长度,无法直接...
C语言练习题:求1到10的阶乘之和简单实例 #include int factorial(int n) { if(0==n) return 1; if(1==n) return 1; return n*factorial(n-1); } int main() { int n=10; int sum=0; int i; for(i=1;i<=n...
可以精确计算 1到 17110之间所有数的阶乘,和阶乘之和,用c语言实现
1至n各自阶乘之和,适宜初学者代码使用,并非最优仅供参考,谢谢合作
运用数组计算阶乘和
求各个阶乘之和,阶乘的倒数之和,求各个阶乘之和,阶乘的倒数之和
本文将深入探讨如何使用C语言来实现阶乘之和的计算,并通过实例代码进行解析。 首先,我们需要理解“阶乘”(Factorial)的概念。阶乘是一个正整数n的所有小于等于n的正整数的乘积,通常用"!"表示。例如,5!(5的...
可以任意输入开始数字和结束数字,能求得起止数字间的阶乘之和
做一个小的程序,简单的把计算数字用计算机完成
1091:求阶乘的和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 22935 通过数: 17332 【题目描述】 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!),输出阶乘的和。 【输入】 输入有一行,...
此java程序时计算1到20 的阶乘的和,即1!+2+3!+4!+5!+6!+7!.......19!+20! 如果你稍微改下就可以只算阶乘!
python爱心代码高级-3.阶乘之和——但是大.py
阶乘和则是指一系列正整数的阶乘之和。如果我们将1到n的所有正整数的阶乘相加,得到的就是n的阶乘和。例如,当n=3时,阶乘和为1! + 2! + 3! = 1 + 2 + 6 = 9。 在编程中,我们可以使用两种基本方法来计算阶乘和: ...
c语言 计算1!+2!+...+n!
本主题将深入探讨如何使用C语言通过嵌套调用来计算阶乘。 阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。在程序设计中,我们通常会...
阶乘求和是一个在计算机科学和数学中常见的问题,它涉及到序列的计算和求和。在本问题中,我们关注的是从1到n的所有整数的阶乘的总和。阶乘是一个数与小于等于它的所有正整数的乘积,表示为n!。例如,5! = 5 × 4 ×...
初学者可以多找一点类似于这种练习题做做,本题是我们老师发的标准答案,计算一到十的阶乘和