1 回答
TA贡献1776条经验 获得超12个赞
#include <iostream>
#include <fstream>
using namespace std;
const int n=10000;
int num[n]=;//乘法结果表
void multiply(int q)
{
for ( int i=0;i<n;i++)num[i]*=q;
for ( i=0;i<n-1;i++)
{
num[i+1]+=num[i]/10000;
num[i]%=10000;
}
}
void output()
{
bool f=0;
// ofstream f1;
// f1.open("result.txt");
for (int i=n-1;i>=0;i--)
{
if (num[i]!=0)
{
if (f)
{
if (num[i]>999)cout<<num[i];
else if (num[i]>99)cout<<'0'<<num[i];
else if (num[i]>9)cout<<'0'<<'0'<<num[i];
else cout<<'0'<<'0'<<'0'<<num[i];
}
else
{
cout<<num[i];
f=true;
}
}
else if (f)
{
cout<<'0'<<'0'<<'0'<<'0';
}
}
cout<<endl;
}
int main()
{
int q;
cout<<"输入target";
cin>>q;
cout<<q<<'!'<<'=';
for (int i=1;i<=q;i++)multiply(i);
output();
system("pause");
return 0;
}
========================
这个程序算到10000!不成问题,把数组大小改成40000,可以算到20000!
- 1 回答
- 0 关注
- 183 浏览
添加回答
举报