编写一个函数计算n!,在主函数中调用该函数求1!+2!+3!+…+10!。 要求:函数要定义在主函数的后面。

用C++编程确定按照题目回答问题呀。。。。。。。
2024-11-06 14:44:07
推荐回答(4个)
回答1:

#include

using namespace std;

int factorial(int a);//声明计算阶乘函数

int main()

{

int sum=0,n;

cout<<"请输入n的值"<

cin>>n;

for(int i=1;i<=n;i++)

{

sum+=factorial(i);//调用函数

}

cout<<"n的阶乘为:"<

return 0;

}

int factorial(int a)

{

int result=1;

for(int i=1;i<=a;i++)

result*=i;

return result;

}

输入的n为10时,运行结果如下:

回答2:

#include
int Calc(int nResult[],int len,int nNumb);
void main()
{
int nResult[128]={0};   //定义一个长度为512的数组用于保存结果 
int len=1 ; //长度定义?

nResult[0]=1; //数组第一个元素赋值为1
for(int i=2;i<=10;i++){    //阶乘计算
len=Calc(nResult,len,i);//递归 由长度len得len
}

for(int i=len-1;i>=0;i--){
printf("%d",nResult[i]);
}

printf("\n");
getchar();

return;
}
int Calc(int nResult[],int len,int nNumb)
{
int i,rem=0;
for(i=0;i rem+=nResult[i]*nNumb;
nResult[i]=rem%10;
rem=rem/10;
}
while(rem>0){
nResult[len]=rem%10;
len++;
rem=rem/10;
}
return len;
}

回答3:

#include
void main()
{
double Ni(int n);
double ni= 0.0;

for(int n= 1; n <= 10; n++) ni+= Ni(n);
printf("%lf\n", ni);}
double Ni(int n)
{
double ret= 1.0;

while(n)
{
ret*= n--;
}
// printf("%lf\n", ret);
return ret;
}

回答4:

#include#includelongxx(longx){if(x=1)return1;elsereturnxx(x-1);}intmain(){longsum=0,i;for(i=1;i<=10;i++)sum+=xx(i);printf("%d",sum);return0;}