试题题干
(1)写一个函数计算自然数n的阶乘(函数头为long fac(int n));
(2)由键盘输入两个自然数a和b且a≤b,调用上述函数计算并输出
的值。
参考答案
试题解析
计算自然数的阶乘中要注意0!和1!的值都为1。计算
的值要调用函数long fac()。
#include<stdio.h>
long fac(int n)
{
long s=1;
int i;
if(n==0||n==1) s=1; /*0!1!的值都为1*/
else for(i=2;i<=n;i++) s*=i; /*利用for语句实现累乘*/
return s;
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
if(b<a) printf("Input error!"); /*因为由键盘输入两个自然数a和b且a≤b,故b<a出错*/
else printf("%ld\n",fac(b)/(fac(a)*fac(b-a))); /*调用函数long fac()*/
}