输入一个正整数n(n<20),输出1到n之间阶乘表。
输入只有一个正整数n。
输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。
51 1
2 2
3 6
4 24
5 120此题提示为:注意int的数据范围。
我本以为要用longlong来做,后来发现到13的阶乘就出现了错误。再后来尝试了double就AC了。
代码如下:
#include <stdio.h>
double cot(int x)
{
double c=1;
for (int i=2;i<=x;i++)
{
c*=i;
}
return c;
}
int main()
{
int n;
double c;
scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%-4d",i);
c=cot(i);
printf ("%-20.0lf\n",c);
}
return 0;
}