1!+2!+3!+……+n!求和用C语言编写,要求使用函数嵌套调用

急!!!!!在线等

#include<iostream>

using namespace std;

int main()

{

int n;

long int s=0,t=1;

cout<<"请输入n:"<<endl;

cin>>n;

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

{t=t*i;

s=s+t;}

cout<<"1!+2!+3!+4!+……+n!="<<s<<endl;

return 0;

}

扩展资料:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-15
函数嵌套调用:

#include <stdio.h>

long func(int n)
{
if(n == 1|| n == 0)
return 1;
else
return n * func(n-1);
}

int main()
{
int i,n;
long sum;
scanf("%d",&n);
sum = 0;
for(i=1;i<=n;i++)
sum += func(i);
printf("sum = %ld\n",sum);

return 0;
}本回答被提问者和网友采纳
第2个回答  2020-11-08
#include <studio.h>
void main()
{
int i, j ,n ;
long int t=1,sum=0;/*t存放每项阶乘值,sum存放累加和*/
print (“input n :”,&n);
scanf (“%d”,&n );
for (i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++) /*求i值*/
t=t*j;
sum=sum+t;
}
printf(“n!=%ld”,sum);
}
第3个回答  2012-01-05
下边是两个递归算法,很好用的:
#include<stdio.h>
int exp(int n){
if(n==1)return 1;
return n*exp(n-1);
}//求阶乘
int sum(int n){
if(n==1)return 1;
return exp(n)+sum(n-1);
}//求阶乘的和
void main(){
int n;
scanf("%d",&n);
printf("所求的和为:%d\n",sum(n));
}
第4个回答  2012-01-05
用递归啊,这十个比较基础的题目,上面第二位同学回答很好
相似回答