7-2 阶乘 (10 分)
题目描述
给你一个正整数,你能算出它的阶乘是多少吗?
输入描述:
若干行,每行一个整数n(1<=n<=20)。!!!!!!!注意范围!!!!
输出描述:
按顺序输出每个整数的阶乘,一个结果占一行。
输入样例1
2
6
结尾无空行
输出样例1
2
720
结尾无空行
#include<stdio.h>
unsigned long long fun(int n) //范围!20的阶乘int类型不足以支持
{
if (n == 1)
{
return 1;
}
return n*fun(n - 1);
}
int main()
{
int n;
unsigned long long result;
while(scanf("%d",&n)!=EOF)
{
result = fun(n);
printf("%lld\n",result);//注意占位符!!!
}
return 0;
}
问题总结
1.没有注意int类型不能保存住20的阶乘。
2.未注意类型改变而应改变占位符%d。