比较简单的一个问题,主要处理的是输入输出和取一个double类型的数的小数点后两位。
C++代码:
#include<stdio.h>
#include<fstream>
int main()
{
//freopen("1.txt","r",stdin);
double ratio[6][6];
int trip[13];
int n;
int flag=0;
int iCase;
scanf("%d",&iCase);
while(iCase--)
{
int i,j;
if(flag)printf("\n");
flag=1;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
scanf("%lf",&ratio[i][j]);
}
while(scanf("%d",&n)&&n)
{
trip[1]=1;
for(i=2;i<=n+1;i++)
{
scanf("%d",&trip[i]);
}
trip[i]=1;
double m;
scanf("%lf",&m);
for(i=2;i<=n+2;i++)
{
m=m*ratio[trip[i-1]][trip[i]];
m=(int)(m*100+0.5);
m/=100;
}
printf("%.2lf\n",m);
}
}
return 0;
}