扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、打开VC6.0软件,新建一个C语言的项目:
创新互联是一家专业提供东方企业网站建设,专注与网站制作、成都网站建设、H5开发、小程序制作等业务。10年已为东方众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
2、接下来编写主程序,首先定义用来求阶乘的递归函数以及主函数。在main函数里定义变量sum求和,调用递归函数fact(),并将返回值赋予sum,最后使用printf打印sum的结果,主程序就编写完了:
3、最后运行程序,观察输出的结果。以上就是C语言使用递归求阶乘的写法:
常见的有两种:
递归版本:
int Fac(int n){
if(n==0) return 1;
return n*Fac(n-1);
}
还有一种是循环版:
int ans=1;
for(int i=1;i=n;i++) ans*=i;
测试方法:
#includestdio.h
int Fac(int n){
if(n==0) return 1;
return n*Fac(n-1);
}
int main(){
int n;
while(scanf("%d",n)!=EOF){
int ans=1;
for(int i=1;i=n;i++) ans*=i;
printf("%d %d\n",ans,Fac(n));
}
return 0;
}
有个值得注意的地方:阶乘时,数增大的很快,在n达到13时就会超过int的范围,此时可以用long long或是 __int64来存储更高精度的值,如果还想存储更高位的,需要用数组来模拟大数相乘。
fun(int i)
{
int j;
int sum=0;
for(j=1;j=i;j++)
{
sum=sum+j*j;
}
printf("s%d=%d\n",j,sum);
return sum;
}
//上面的代码是求平方和
//求阶乘可以这样:
int fun(int i)//返回类型不可少
{
int j;
int sum=1;//从1开始
for(j=1;j=i;j++)
{
sum=sum * j;
}
printf("s%d=%d\n",j,sum);
return sum;
}
//主函数中是求阶乘的和
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流