#include<stdio.h>
#include<string.h>
#define N 100
int a[N+1];
void das(int x)
{
int i,j,ad;
a[N]=1;
for(i=1;i<=x;i++)
{
for(j=N,ad=0;j>=0;j--)
{
ad+=i*a[j];
a[j]=ad%10000;
ad/=10000;
}
}
}
void multiply(int x)
{
int i,ad;
for(i=N,ad=0;i>=0;i--)
{
ad+=a[i]*x;
a[i]=ad%10000;
ad/=10000;
}
}
void divide(int x)
{
int i,ad=0;
for(i=0;i<=N;i++)
{
ad=ad*10000+a[i];
a[i]=ad/x;
ad%=x;
}
}
void output()
{
int i;
for(i=0;i<=N;i++)
if(a[i]) break;
printf("%d",a[i++]);
for(;i<=N;i++)
printf("%04d",a[i]);
printf("\n");
}
int main()
{
int m,n,count=0;
while(scanf("%d%d",&m,&n)&&m+n)
{
printf("Test #%d:\n",++count);
if(n>m) printf("0\n");
else
{
memset(a,0,sizeof(a));
das(m+n);
multiply(m+1-n);
divide(m+1);
output();
}
}
return 0;
}
HDU1133 大数乘小数 大数除小数
最新推荐文章于 2022-04-11 00:05:33 发布