#include
#include
unsigned long long jc(unsigned long long n)
{
if(n==0 || n==1) return 1;
return n*jc(n-1);
}
int main()
{
int n,m;
unsigned long long res=0;
while(1){
printf("ÇëÊäÈëÁ½¸öÕûÊýnºÍm£¨0<=n<=m<=10£©:\n");
scanf("%d %d",&n,&m);
if(n==-1 && m==-1) break;
int i;
res=0;
for(i=n;i<=m;i++)
{
res= res+jc(i);
}
printf("%u\n",res);
}
system("pause");
return 0;
}
#include
int sum(int n, int m) {
int i =n;
int sum = 0;
if (n > m)
return -1;
else {
for(; i <=m; i++) {
sum += jiecheng(i);
}
}
return sum;
}
int jiecheng(int n) {
int i = 1;
int muti= 1;
if (n >= 1) {
for (;i <= n; i++) {
muti *= i;
}
}
return muti;
}
int main() {
printf("%d\n",sum(2, 3));
return 0;
}
阶乘用迭代,然后循环相加即可。
如图(注意:输入两个数的时候用空格隔开):
n和m的值有没有范围,对于运行时间有没有要求?