📄 3000!.txt
字号:
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
/* make sure BASE * NN < 2^32 */
#define BASE 1000000UL
#define NN 3000UL
static unsigned int a[2048]={0};
static char txtname[128] = {0};
int main(int argc, char **argv)
{
unsigned int carry, nbase;
unsigned int m=1;
unsigned int i, j;
ofstream out;
/* calc NN ! */
a[0] = 1;
for(i=1;i < (NN+1);i++){
for(j=0;j<m;j++){
a[j]*=i;
while(1){
if(a[j]< BASE)
break;
carry = a[j]/BASE;
a[j] -= (carry*BASE);
j++;
a[j] = a[j]*i + carry;
}
}
m=j;
}
/* out put to text file */
sprintf(txtname, "%d.txt", NN);
out.open(txtname,ios::out);
out<<NN<<"!=\n";
out<<a[m-1];
if (out){
i = m-1;
do{
i--;
nbase = BASE/10;
while(nbase > 1) {
if(a[i] < nbase)
out<<'0';
else
break;
nbase /= 10;
}
out<<a[i];
}while(i != 0);
}
else out<<"error!";
out.close;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -