3 回答
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
#include <stdio.h>
int main(void)
{
int start;
int end;
long sum=0;
int i,j;
long fac=1;
printf("輸入start和end的值:");
scanf("%d%d",&start,&end);
for(i=start ; i<=end ; i++)
{
for(j=1;j<=i;j++)
fac*=j;
sum+=fac;
}
printf("%d!+...+%d!=%ld",start,end,sum);
return 0;
}
程序只能實(shí)現(xiàn)很小范圍的階乘,因?yàn)閘ong型的數(shù)最大只有 2147483648
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
#include <iostream>
using namespace std;
long factorial(int n)
{
if(n == 1) return n;
return n*factorial(n - 1);
}
long fun(int *a, int start, int end)
{
long sum = 0;
for(int i = start; i <= end; i++)
{
sum += factorial(a[i - 1]);
}
return sum;
}
void main()
{
int a[5] = {1, 2, 3, 4, 5};
cout<<fun(a, 3, 4)<<endl;
}
30
3*2*1 +4*3*2*1 = 30
- 3 回答
- 0 關(guān)注
- 1122 瀏覽
添加回答
舉報(bào)
