PAT-B 1037 在霍格沃茨找零錢(C語言)

題目

鏈接:PAT (Basic Level) Practice 1037 在霍格沃茨找零錢

如果你是哈利·波特迷,你會(huì)知道魔法世界有它自己的貨幣系統(tǒng) —— 就如海格告訴哈利的:“十七個(gè)銀西可(Sickle)兌一個(gè)加隆(Galleon),二十九個(gè)納特(Knut)兌一個(gè)西可,很容易?!爆F(xiàn)在,給定哈利應(yīng)付的價(jià)錢 P 和他實(shí)付的錢 A,你的任務(wù)是寫一個(gè)程序來計(jì)算他應(yīng)該被找的零錢。

輸入格式:

輸入在 1 行中分別給出 P 和 A,格式為 Galleon.Sickle.Knut,其間用 1 個(gè)空格分隔。這里 Galleon 是 [0, 10^7] 區(qū)間內(nèi)的整數(shù),Sickle 是 [0, 17) 區(qū)間內(nèi)的整數(shù),Knut 是 [0, 29) 區(qū)間內(nèi)的整數(shù)。

輸出格式:

在一行中用與輸入同樣的格式輸出哈利應(yīng)該被找的零錢。如果他沒帶夠錢,那么輸出的應(yīng)該是負(fù)數(shù)。

輸入樣例 1:

10.16.27 14.1.28

輸出樣例 1:

3.2.1

輸入樣例 2:

14.1.28 10.16.27

輸出樣例 2:

-3.2.1


思路

先把錢數(shù)量轉(zhuǎn)換成最小單位Knut,得到找零后再轉(zhuǎn)換成三種單位。


代碼

#include<stdio.h>

int main()
{
  int P_Gal, P_Sic, P_Knu, A_Gal, A_Sic, A_Knu,C_Gal,C_Sic,C_Knu;
  int P, A, C;
  int flag = 0;
  scanf("%d.%d.%d %d.%d.%d", &P_Gal, &P_Sic, &P_Knu, &A_Gal, &A_Sic, &A_Knu);
  P = (P_Gal * 17 + P_Sic) * 29 + P_Knu;
  A = (A_Gal * 17 + A_Sic) * 29 + A_Knu;
  C = A - P;
  if(C < 0){
      flag = 1;
      C = -C;
  }
  C_Knu = C % 29;
  C = C / 29;
  C_Sic = C % 17;
  C_Gal = C / 17;
  if(flag == 1){
      printf("-");
  }
  printf("%d.%d.%d", C_Gal, C_Sic, C_Knu);
  
  return 0;
}


---END---

其他相關(guān)題目

PAT-B 1036 跟奧巴馬一起編程(C語言)
PAT-B 1038 統(tǒng)計(jì)同成績(jī)學(xué)生(C語言)
PAT-B 1039 到底買不買(C語言)
PAT-B 1040 有幾個(gè)PAT(C語言)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容