讨论 / 产生数WA60帮忙查一下错
wshjz 2013-09-27 04:34:00
点我顶贴 收藏 删除
#include <stdio.h>

#include <stdlib.h>

char raw[40];

int gx[10][10],all[10],out[40];

int main()

{

int n,m,i,j,k,xa,xb,top;

memset(raw,0,sizeof(raw));

memset(gx,0,sizeof(gx));

memset(all,0,sizeof(all));

memset(out,0,sizeof(out));

scanf("%s",&raw[1]);

scanf("%d",&n);

m=strlen(&raw[1]);

for(i=1;i<=n;++i)

{

scanf("%d%d",&xa,&xb);

gx[xa][xb]=1;

}

for(i=0;i<=9;++i)

for(j=0;j<=9;++j)

for(k=0;k<=9;++k)

if(gx[i][j]&&gx[j][k])gx[i][k]=1;

for(i=0;i<=9;++i)

gx[i][i]=1;

for(i=0;i<=9;++i)

for(j=0;j<=9;++j)

all[i]+=gx[i][j];

for(i=1;i<=m;++i)

raw[i]-='0';

out[1]=1;

for(i=1;i<=m;++i)

{

for(j=1;j<=30;++j)

out[j]*=all[raw[i]];

for(j=1;j<=30;++j)

if(out[j]>=10)

{

out[j+1]+=out[j]/10;

out[j]=out[j]%10;

}

}

top=30;

while(!out[top])--top;

for(i=top;i>=1;--i)

printf("%d",out[i]);

return 0;

}

#1 GUA@2013-09-27 04:34:00
回复 删除
没写高精怎么过得了
查看更多回复
提交回复