📄 [1042]n!.cpp
字号:
// [1042]N!.cpp : 定义控制台应用程序的入口点。
//
/*
#include <stdio.h>
#define MAX 100000//传统6存1算法
int main()
{
int n;
while (scanf("%d",&n)!=EOF)
{
if(n==0)//0!规定为1
{
printf("1\n");
continue;
}
int s[10000]={0};
s[0]=1;
int i,j,k=0,sj;//k用来控制占用的数组范围
for(i=1;i<=n;i++)
{
sj=0;
for(j=0;j<=k;j++)
{
s[j]=s[j]*i+sj;
sj=s[j]/MAX;
s[j]%=MAX;
}
if(sj)
{
k++;
s[k]=sj;
}
}
printf("%u",s[k]);
for(i=k-1;i>=0;i--)
{
j=10;
printf("%05d",s[i]);
}
printf("\n");
}
return 0;
}
*/
#include "stdafx.h"
#include "stdio.h"
#define MAX_SIZE 30000
#define W 100000
int main()
{
int n;
int i, j;
while (scanf("%d",&n) != EOF)
{
int re[MAX_SIZE] = {0};
int k = 0, jw;
if (n == 0)
{
printf("1\n");
continue;
}
re[0] = 1;
for (i = 1; i <=n; i++)
{
jw = 0;
for (j = 0; j <= k; j++)
{
re[j] = re[j] * i + jw;
jw = re[j] / W;
re[j] %= W;
}
if (jw)
{
k++;
re[k] = jw;
}
}
printf("%d",re[k]);
for (i = k-1; i >= 0 ; i--)
printf("%05d",re[i]);
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -