首页 新闻 会员 周边 捐助

C语言计算n的阶乘

0
[已解决问题] 解决于 2022-04-20 22:51

编写程序,输入整数n,计算并输出n的阶乘:n!=1×2×3×⋯×n,要求使用函数递归调用方法实现,n取值范围为:0≤n≤10,程序输入输出样例(3个)如下所示。

输入样例: 输出样例:
n=3 The factorial of 3 is 6
n=12 The input is out of range
n=-2 The input is out of range

大家帮下忙,谢谢!

希望的石头OL的主页 希望的石头OL | 菜鸟二级 | 园豆:202
提问于:2022-04-19 17:03

include <stdio.h>

int main()
{
long fac( int n );
int n, y;
printf( "The factorial of " );
scanf( "%d", &n );
y = fac( n );
printf( "%d is %ld\n", n, y );
return(0);
}

long fac( int n )
{
long f;
if ( n < 0 )
printf( "The input is out of range" );
else if ( n > 10 )
printf( "The input is out of range" );
else if ( n == 0, n == 1 )
f = 1 ;
else f = fac( n - 1 ) * n;
return(f);
}

希望的石头OL 2年前

这样写好像也不正确

希望的石头OL 2年前
< >
分享
最佳答案
1

我是学C++的,C++和C很相似,不知道C++代码行不行。
C++代码如下:

include<iostream>

using namespace std;
int main()
{
int n,ans=1;//因为n≤10,所以int型够用
cout<<"n=";
cin>>n;
if(n<0 || n>10)
cout<<"The input is out of range";
else
{
for(int i=1;i<=n;++i)
ans=i;//12……n
cout<<"The factorial of "<<n<<" is "<<ans;
}
return 0;
}

奖励园豆:5
刘浩星 | 菜鸟二级 |园豆:211 | 2022-04-20 11:33
其他回答(1)
1

这题可以用搜索引擎找到:C语言递归求阶乘

会长 | 园豆:12463 (专家六级) | 2022-04-19 18:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册