?? 3000.cpp
字號:
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
//#include<windows.h>
//#include<time.h>
/*
double currTime(LARGE_INTEGER *freq) //使用高精度計時器
{
LARGE_INTEGER performanceCount;
BOOL result=QueryPerformanceCounter( &performanceCount );
double time= performanceCount.HighPart * 4294967296.0 + performanceCount.LowPart;
time=time / ( freq->HighPart * 4294967296.0 + freq->LowPart);
return time;
}
*/
int main()
{
/* double start,end;
LARGE_INTEGER freq;
if ( !QueryPerformanceFrequency( &freq) )
{
cout<<"不能使用高精度計時器";
return 0;
}
start=currTime(&freq);
// long start,end;
// start=clock();
*/
//定義初始變量
int c=0,
i=0,
j=0,
k=0,
m=0,
jinwei=0;
//定義數組的容量
unsigned int jiec[3500]={1};
int ff[1600];
//3000的階乘
//for(i=1;i<=1500;i++)
// ff[i]=i*(3001-i);
for(i=1;i<=1500;i++)
{
m=i*(3001-i);
//判斷數組的開始是否為零
while(jiec[k]==0){k++;}
//作一次階乘
for(j=k;j<c+3;j++)
{
jiec[j]=jiec[j]*m+jinwei;
//計算從數組中的進位
jinwei=jiec[j]/1000;
//取模
jiec[j]=jiec[j]-jinwei*1000;
}
//計算數組的位數
while(jiec[j--]==0);
c=j+2;
}
//文件的輸出
ofstream fileout;
fileout.open("3000.txt");
if(!fileout)
{
cout<<"不能打開文件;"<<"3000!.txt"<<'\n';
exit(1);
}
//輸出開頭
fileout<<"3000!=";
//輸出最高的位
fileout<<jiec[c-1];
//依次輸出結果,不夠零的不足
for(i=c-2;i>=0;i--)
{
if(jiec[i]==0)
{
fileout<<"000";
}
if(jiec[i]>0&&jiec[i]<10)
{
fileout<<"00"<<jiec[i];
}
if(jiec[i]>=10&&jiec[i]<100)
{
fileout<<"0"<<jiec[i];
}
if(jiec[i]>=100)
fileout<<jiec[i];
}
fileout.close();
// end=clock();
// end=currTime(&freq);
// cout<<endl<<(end-start)<<endl;
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -