杭电1042
代码如下,总是超时,百思无解,暂且放下,来日方长
#include<iostream>
#include<cstdio>
using namespace std;
const int Length = 40000;
int Multiple(int *Array, int ArrayLength, int m)
{
int c = 0;
for(int i = 1; i <= ArrayLength; i ++)
{
int t = Array[i] * m + c;
Array[i] = t % 10;
c = t / 10;
}
while(c)
{
Array[++ ArrayLength] = c % 10;
c /= 10;
};
return ArrayLength;
}
void PrintArray(int *Array, int ArrayLength)
{
for(int i = ArrayLength; i >= 1; i --)
printf("%d", Array[i]);
printf("\n");
}
int main()
{
int a[Length];
while(1)
{
int N;
scanf("%d", &N);
a[0] = 0;
a[1] = 1;
int aLength = 1;
for(int i = 1; i <= N; i ++)
{
aLength = Multiple(a, aLength, i);
}
PrintArray(a, aLength);
}
return 0;
}
代码如下,总是超时,百思无解,暂且放下,来日方长
#include<iostream>
#include<cstdio>
using namespace std;
const int Length = 40000;
int Multiple(int *Array, int ArrayLength, int m)
{
int c = 0;
for(int i = 1; i <= ArrayLength; i ++)
{
int t = Array[i] * m + c;
Array[i] = t % 10;
c = t / 10;
}
while(c)
{
Array[++ ArrayLength] = c % 10;
c /= 10;
};
return ArrayLength;
}
void PrintArray(int *Array, int ArrayLength)
{
for(int i = ArrayLength; i >= 1; i --)
printf("%d", Array[i]);
printf("\n");
}
int main()
{
int a[Length];
while(1)
{
int N;
scanf("%d", &N);
a[0] = 0;
a[1] = 1;
int aLength = 1;
for(int i = 1; i <= N; i ++)
{
aLength = Multiple(a, aLength, i);
}
PrintArray(a, aLength);
}
return 0;
}