亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

寫一個函數,求一個數組a[ ]中,從第int start 到int end之間的所有元素階乘的和?

寫一個函數,求一個數組a[ ]中,從第int start 到int end之間的所有元素階乘的和?

慕尼黑8549860 2019-02-26 09:06:28
寫一個函數,求一個數組a[ ]中,從第int start 到int end之間的所有元素階乘的和
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

#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;
}
程序只能實現很小范圍的階乘,因為long型的數最大只有 2147483648

 


查看完整回答
反對 回復 2019-03-27
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

#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


查看完整回答
反對 回復 2019-03-27
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

int factorial(int num)
{
int i = 0;
int result = 1;
for(int i = 1;i < num+1; i++)
{
result = i * result;
}
return result;
}

int fun(int* a, int start, int end)
{
int result = 0;
for(int i = start; i < end + 1;i++)
{
result = result + factorial(a[i]);
}
return result;
}


查看完整回答
反對 回復 2019-03-27
  • 3 回答
  • 0 關注
  • 1052 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號