问题 D: C语言习题 a!+b!+c!
题目描述
求a!+b!+c!的值,用一个函数fac(n)求n!。a,b,c的值由主函数输入,最终得到的值在主函数中输出。
输入
a,b,c的值
输出
a!+b!+c!的值
#include <iostream>
using namespace std;
int main()
{
int fac(int);
int a,b,c,sum;
cin>>a>>b>>c;
sum=fac(a)+fac(b)+fac(c);
cout<<sum<<endl;
return 0;
}
int fac(int n)
{
int s=1;
for(int i=1;i<=n;i++)
s=s*i;
return s;
}
阶乘就是累乘,三个阶乘相加,我们可以自定义求阶乘的函数,加法在主函数中体现;
先定义一个整型函数(int fac(int n)),因为求的是乘法,所以变量定义为1(int s=1;),从一开始直到所需数据(for(int i=1;i<=n;i++)),依次相乘(s=s*i;);
因为主函数在前,所以调用自定义函数(int fac(int);)!
注:自定义函数还可以用递归的方法,例如
#include <iostream>
using namespace std;
int main()
{
int fac(int);
int a,b,c,sum;
cin>>a>>b>>c;
sum=fac(a)+fac(b)+fac(c);
cout<<sum<<endl;
return 0;
}
int fac(int n)
{
if(n==1) return 1;
else return n*fac(n-1);
}
或
#include <iostream>
using namespace std;
int main()
{
int fac(int);
int a,b,c,sum;
cin>>a>>b>>c;
sum=fac(a)+fac(b)+fac(c);
cout<<sum<<endl;
return 0;
}
int fac(int n)
{
int s;
if(n==1) s=1;
else s=n*fac(n-1);
return s;
}