1037 在霍格沃茨找零錢

2021-09-30 13:19:07 字數 1286 閱讀 2956

如果你是哈利·波特迷,你會知道魔法世界有它自己的貨幣系統 —— 就如海格告訴哈利的:「十七個銀西可(sickle)兌乙個加隆(galleon),二十九個納特(knut)兌乙個西可,很容易。」現在,給定哈利應付的價錢p和他實付的錢a,你的任務是寫乙個程式來計算他應該被找的零錢。

輸入格式:

輸入在1行中分別給出p和a,格式為「galleon.sickle.knut」,其間用1個空格分隔。這裡galleon是[0, 107]區間內的整數,sickle是[0, 17)區間內的整數,knut是[0, 29)區間內的整數。

輸出格式:

在一行中用與輸入同樣的格式輸出哈利應該被找的零錢。如果他沒帶夠錢,那麼輸出的應該是負數。

輸入樣例1:

10.16.27 14.1.28

輸出樣例1:

3.2.1

輸入樣例2:

14.1.28 10.16.27

輸出樣例2:

-3.2.1

解題思路:首先把錢數換算成乙個統一的單位–knut,然後計算a-p就得都了零錢數,再將零錢數換算為galleon sickle knut,換算方法為用3個未知數表示galleon sickle knut的個數,然後利用三重迴圈,但滿足等式i * 29 * 17 + j * 29 + k == abs(a-p)時退出迴圈。

int galleon, sickle, knut;

cin >> galleon >> sickle >> knut;

int price = exchang(galleon, sickle, knut);

int hg, hs, hk;

bool flag = false;

cin >> hg >> hs >> hk;

int pay = exchang(hg, hs, hk);

int back = pay-price;

int i, k, j;

for ( i = 0;; ++i)

}if (flag)break;

}if (flag)break;

}cout

<< back << endl;

if (back<0)

cout

<< "-"

<< i << " "

<< j << " "

<< k << endl;

else

cout

<< i << " "

<< j << " "

<< k << endl;

!輸出結果

!輸出結果

1037 在霍格沃茨找零錢

題目是pat乙級 思路 模擬題,注意借位。別輸出 0.0.0。訓練目的 結構體 運算子過載 題目描述 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的...

1037 在霍格沃茨找零錢

題目資訊 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢p和他實付的錢a,你的任務是寫乙個程式來計算他應該被找的零錢。輸入格式 輸入在1行中分別...

1037 在霍格沃茨找零錢

1037 在霍格沃茨找零錢 20 分 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢 p 和他實付的錢 a,你的任務是寫乙個程式來計算他應該被找...