ACM--阶乘运行时间超时
怎么在求一个比较大的阶乘时,比较有效率,,比如下面这段程序
,题目在提交的时候可能在验证的时候给了一个比较大的数,显示运行时间超时了,这个程序要怎么改呢
,题目在提交的时候可能在验证的时候给了一个比较大的数,显示运行时间超时了,这个程序要怎么改呢
#include<iostream>
using namespace std;
long int fun(long int);
int main()
{
int number;
int n[1000];
int i;
long int S;
cin>>number;
for(i=0;i<number;i++)
{
cin>>n[i];
}
for(i=0;i<number;i++)
{
S=0;
long int j;
for(j=1;j<n[i];j++)
{
S+=j*fun(j);
}
cout<<S%n[i]<<endl;
}
return 0;
}
long int fun(long int k)
{
long int f;
if(k==0||k==1)
{
f=1;
}
else
f=fun(k-1)*k;
return f;
}
...全文
相关推荐
使用C语言求N的阶乘的方法
在编程领域,阶乘是一个常见的数学概念,特别是在算法和计算机科学竞赛中,如ACM(国际大学生程序设计竞赛)。阶乘表示的是一个正整数N的所有小于等于它的正整数的乘积,表示为N!。例如,5的阶乘(5!)
用高精度算N阶乘,编程语言c++,acm经典题型之一...
高精度的除法和取余操作,虽然在计算阶乘过程中不需要,但它们可能会在解决其他ACM问题时派上用场。5. 输出大数,将其转换回字符串形式。编写好这些基本操作后,就可以实现计算阶乘的函数了。
acm练习题目之原题
Factorial算法:Factorial算法是指计算阶乘的算法,在本题目中,需要计算从1到n的阶乘之和。8. 循环结构:循环结构是指在编程语言中使用的循环语句,用于重复执行某些语句。
ACM 入门题目集 适合刚刚入门的新手
**问题定义:** 计算给定整数`n`的阶乘`n!`中最后一个非零数字。2. **解题思路:** - 阶乘`n!
ACM经典代码
以下是一些ACM经典代码,用于解决大数的精度计算问题,包括大数阶乘、大数乘法(大数乘小数与大数乘大数)以及大数加法。1. 大数阶乘:这个代码实现了一个计算大数阶乘的函数`factorial`。


