思路:模擬現實中找零錢,按三個進製所在的位數相減,小了就向高位借1。值得注意的是後面的兩位是p-a還是a-p,根據第乙個galleon位的大小的比較來決定。
#include using namespace std;
int p[3] = ,a[3] = ,change[3] = ;
int main()
else change[i] =change[i]+(a[i] - p[i]);//注意要加上change[i]
if (change[i] < 0)
if (i == 2)}}
cout<< change[0] << "." << change[1] << "." << change[2];
return 0;
}
最開始的想法——全部換算成乙個計量單位相減後,再整除取餘換算回去。擔心數字過大越界,然後運算量大費時。沒想到都沒有,嘿!
#include using namespace std;
int main()
int galleon, sickle, knut;
galleon = change / 29 / 17;
sickle = (change % (29 * 17)) / 29;
knut = change - galleon * 29 * 17 - sickle * 29;
cout << galleon << "." << sickle << "." << knut;
return 0;
}
參照別人部落格再簡化
//甭管什麼數,滿多少進1的——只有 取餘進製的 和 餘數
#includeusing namespace std;
int main()
cout
}
1037 在霍格沃茨找零錢
題目是pat乙級 思路 模擬題,注意借位。別輸出 0.0.0。訓練目的 結構體 運算子過載 題目描述 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的...
1037 在霍格沃茨找零錢
題目資訊 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢p和他實付的錢a,你的任務是寫乙個程式來計算他應該被找的零錢。輸入格式 輸入在1行中分別...
1037 在霍格沃茨找零錢
1037 在霍格沃茨找零錢 20 分 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢 p 和他實付的錢 a,你的任務是寫乙個程式來計算他應該被找...