C语言编程题。计算1!+2!+3!+…+n!的值,n从键盘输入(用函数完成阶乘计算)

2024-11-08 07:25:25
推荐回答(5个)
回答1:

#include"iostream.h"
#include"windows.h"
void main()
{
int A(int n);//递归求阶乘
cout<<"请输入N值:";
int i,N,sum=0;
cin>>N;
if(N>0)
{
for(i=N;i>=1;i--)
{
sum+=A(i);
}
cout<<"结果:"< }
else
cout<<"N必须为正整数!\n";
system("pause");
}
int A(int n)
{
if(n>1)
return A(n-1)*n;
if(n==1)
return 1;
}

回答2:

#include
int fun(int a)
{
int i=1,sum=1;
while(i<=a)
{
sum*=i;
i++;
}
return sum;
}
main()
{
int n,i=1,sum=0;
printf("请输入n的值:");
scanf("%d",&n);
while(i<=n)
{
sum+=fun(i);
i++;
}
printf("结果是:%d\n",sum);
}

回答3:

#include
using namespace std;
unsigned long long n,a[100000001],b[100000001],lb,la=1,x,x1;
int main()
{
cin>>n;
a[1]=1;
for(int i=1;i<=n;i++)
{
x=0;
for(int j=1;j<=la;j++)
{
a[j]=a[j]*i+x;
x=a[j]/10;
a[j]%=10;
}
while(x>0)
{
la++;
a[la]=x%10;
x/=10;
}
lb=la;
x1=0;
int k;
for(k=1;k<=lb;k++)
{
b[k]+=a[k]+x1;
x1=b[k]/10;
b[k]%=10;
}
b[k]=x1;
}
for(int i=la;i>=1;i--) cout< return 0;
}

回答4:

void main()
{
long t=1,sum=0;
int i,n;
printf("enter n:\n",&n)
for(i=1;i<=n;i++)
{
t=t*i;
sum+=t;
}
printf("%d!=%ld\n",n,sum);
}

就是这样,希望对你有帮住~

回答5:

#include
int main(void)
{
int n,i,j,k=1,sum=0;
while(scanf("%d",&n)!=EOF)
{
sum=0;
if(n==0)
;
else
for(i=1;i<=n;i++)
{
for(j=i;j>0;j--)
k*=j;
sum+=k;
k=1;
}
printf("\nThe result is %d\n",sum);
}
}