Posted on 2010-11-02 11:30
李東亮 閱讀(1336)
評論(0) 編輯 收藏 引用 所屬分類:
acm
ZOJ1058 Currency Exchange
水題一道,唯一需要注意的是題目中說只能取到貨幣的百分之一,因此在每次進行貨幣匯率轉換之后都要進行處理,WA了一次就是因為到最后輸出的時候才四舍五入,這個操作應該在每次轉換匯率后都進行。
參考代碼如下:
#include <stdio.h>
#include <stdlib.h>
double rates[5][5];
int indx[10];
int main(void)
{
int n;
int t;
double money;
int i, j;
int prev;
/*freopen("in.txt", "r", stdin);*/
scanf("%d", &t);
while (t--)
{
for (i = 0; i < 5; ++i)
{
for (j = 0; j < 5; ++j)
{
scanf("%lf", &rates[i][j]);
}
}
while (scanf("%d", &n) == 1 && n != 0)
{
prev = 0;
for (i = 0; i < n; ++i)
{
scanf("%d", &indx[i]);
}
scanf("%lf", &money);
money *= 100;
for (i = 0; i < n; ++i)
{
money *= rates[prev][indx[i]-1];
prev = indx[i]-1;
if (money - (int)money >= 0.5)
money = (int)money+1;
else
money = (int)money;
}
money *= rates[prev][0];
if (money - (int)money >= 0.5)
money = (int)money+1;
else
money = (int)money;
printf("%.2f\n", money/100);
}
if (t != 0)
{
printf("\n");
}
}
return 0;
}